home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 2 / Apprentice-Release2.iso / Tools / Languages / GCC 1.37.1r14 / usr / gcc-1.37.1r14 / (gcc-1.37.π) / insn-output.c < prev    next >
Encoding:
C/C++ Source or Header  |  1993-10-05  |  110.9 KB  |  6,136 lines  |  [TEXT/KAHL]

  1. /* Generated automatically by the program `genoutput'
  2. from the machine description file `md'.  */
  3.  
  4. #include "config.h"
  5. #include "rtl.h"
  6. #include "regs.h"
  7. #include "hard-reg-set.h"
  8. #include "real.h"
  9. #include "conditions.h"
  10. #include "insn-flags.h"
  11. #include "insn-config.h"
  12.  
  13. #ifndef __STDC__
  14. #define const
  15. #endif
  16.  
  17. #include "output.h"
  18. #include "aux-output.c"
  19.  
  20. #ifndef INSN_MACHINE_INFO
  21. #define INSN_MACHINE_INFO struct dummy1 {int i;}
  22. #endif
  23.  
  24.  
  25. static char *
  26. output_0 (operands, insn)
  27.      rtx *operands;
  28.      rtx insn;
  29. {
  30.  
  31. {
  32.   if (FP_REG_P (operands[1]))
  33.     return "fmove%.d %1,%0";
  34.   return output_move_double (operands);
  35. }
  36. }
  37.  
  38. static char *
  39. output_1 (operands, insn)
  40.      rtx *operands;
  41.      rtx insn;
  42. {
  43.  
  44. {
  45.   return output_move_double (operands);
  46. }
  47. }
  48.  
  49. static char *
  50. output_2 (operands, insn)
  51.      rtx *operands;
  52.      rtx insn;
  53. {
  54.  
  55. {
  56.   if (TARGET_68020 || ! ADDRESS_REG_P (operands[0]))
  57.     return "tst%.l %0";
  58.   /* If you think that the 68020 does not support tstl a0,
  59.      reread page B-167 of the 68020 manual more carefully.  */
  60.   /* On an address reg, cmpw may replace cmpl.  */
  61.   return "cmp%.w #0,%0";
  62. }
  63. }
  64.  
  65. static char *
  66. output_3 (operands, insn)
  67.      rtx *operands;
  68.      rtx insn;
  69. {
  70.  
  71. {
  72.   if (TARGET_68020 || ! ADDRESS_REG_P (operands[0]))
  73.     return "tst%.w %0";
  74.   return "cmp%.w #0,%0";
  75. }
  76. }
  77.  
  78. static char *
  79. output_6 (operands, insn)
  80.      rtx *operands;
  81.      rtx insn;
  82. {
  83.  
  84. {
  85.   cc_status.flags = CC_IN_68881;
  86.   if (FP_REG_P (operands[0]))
  87.     return TARGET_GAS?"ftst%.x %0":"ftest%.x %0";
  88.   return TARGET_GAS?"ftst%.s %0":"ftest%.s %0";
  89. }
  90. }
  91.  
  92. static char *
  93. output_7 (operands, insn)
  94.      rtx *operands;
  95.      rtx insn;
  96. {
  97.  return output_sane_tst (operands, 0x1008, "FCMPS");
  98. }
  99.  
  100. static char *
  101. output_9 (operands, insn)
  102.      rtx *operands;
  103.      rtx insn;
  104. {
  105.  
  106. {
  107.   cc_status.flags = CC_IN_68881;
  108.   if (FP_REG_P (operands[0]))
  109.     return TARGET_GAS?"ftst%.x %0":"ftest%.x %0";
  110.   return TARGET_GAS?"ftst%.d %0":"ftest%.d %0";
  111. }
  112. }
  113.  
  114. static char *
  115. output_10 (operands, insn)
  116.      rtx *operands;
  117.      rtx insn;
  118. {
  119.  return output_sane_tst (operands, 0x0808, "FCMPD");
  120. }
  121.  
  122. static char *
  123. output_12 (operands, insn)
  124.      rtx *operands;
  125.      rtx insn;
  126. {
  127.  
  128. {
  129.   cc_status.flags = CC_IN_68881;
  130.   return TARGET_GAS?"ftst%.x %0":"ftest%.x %0";
  131. }
  132. }
  133.  
  134. static char *
  135. output_13 (operands, insn)
  136.      rtx *operands;
  137.      rtx insn;
  138. {
  139.  return output_sane_tst (operands, 0x0008, "FCMPX");
  140. }
  141.  
  142. static char *
  143. output_14 (operands, insn)
  144.      rtx *operands;
  145.      rtx insn;
  146. {
  147.  
  148. {
  149.   if (GET_CODE (operands[0]) == MEM && GET_CODE (operands[1]) == MEM)
  150.     return "cmpm%.l %1,%0";
  151.   if (REG_P (operands[1])
  152.       || (!REG_P (operands[0]) && GET_CODE (operands[0]) != MEM))
  153.     { cc_status.flags |= CC_REVERSED;
  154.       return "cmp%.l %d0,%d1"; 
  155.     }
  156.   return "cmp%.l %d1,%d0";
  157. }
  158. }
  159.  
  160. static char *
  161. output_15 (operands, insn)
  162.      rtx *operands;
  163.      rtx insn;
  164. {
  165.  
  166. {
  167.   if (GET_CODE (operands[0]) == MEM && GET_CODE (operands[1]) == MEM)
  168.     return "cmpm%.w %1,%0";
  169.   if ((REG_P (operands[1]) && !ADDRESS_REG_P (operands[1]))
  170.       || (!REG_P (operands[0]) && GET_CODE (operands[0]) != MEM))
  171.     { cc_status.flags |= CC_REVERSED;
  172.       return "cmp%.w %d0,%d1"; 
  173.     }
  174.   return "cmp%.w %d1,%d0";
  175. }
  176. }
  177.  
  178. static char *
  179. output_16 (operands, insn)
  180.      rtx *operands;
  181.      rtx insn;
  182. {
  183.  
  184. {
  185.   if (GET_CODE (operands[0]) == MEM && GET_CODE (operands[1]) == MEM)
  186.     return "cmpm%.b %1,%0";
  187.   if (REG_P (operands[1])
  188.       || (!REG_P (operands[0]) && GET_CODE (operands[0]) != MEM))
  189.     { cc_status.flags |= CC_REVERSED;
  190.       return "cmp%.b %d0,%d1";
  191.     }
  192.   return "cmp%.b %d1,%d0";
  193. }
  194. }
  195.  
  196. static char *
  197. output_18 (operands, insn)
  198.      rtx *operands;
  199.      rtx insn;
  200. {
  201.  
  202. {
  203.   cc_status.flags = CC_IN_68881;
  204.   if (FP_REG_P (operands[0]))
  205.     {
  206.       if (FP_REG_P (operands[1]))
  207.     return "fcmp%.x %1,%0";
  208.       else
  209.         return "fcmp%.s%1,%0";
  210.     }
  211.   cc_status.flags |= CC_REVERSED;
  212.   return "fcmp%.s%0,%1";
  213. }
  214. }
  215.  
  216. static char *
  217. output_19 (operands, insn)
  218.      rtx *operands;
  219.      rtx insn;
  220. {
  221.  return output_sane_cmp (operands, 0x1008, "FCMPS");
  222. }
  223.  
  224. static char *
  225. output_21 (operands, insn)
  226.      rtx *operands;
  227.      rtx insn;
  228. {
  229.  
  230. {
  231.   cc_status.flags = CC_IN_68881;
  232.   if (FP_REG_P (operands[0]))
  233.     {
  234.       if (FP_REG_P (operands[1]))
  235.     return "fcmp%.x %1,%0";
  236.       else
  237.         return "fcmp%.d %1,%0";
  238.     }
  239.   cc_status.flags |= CC_REVERSED;
  240.   return "fcmp%.d %0,%1";
  241. }
  242. }
  243.  
  244. static char *
  245. output_22 (operands, insn)
  246.      rtx *operands;
  247.      rtx insn;
  248. {
  249.  return output_sane_cmp (operands, 0x0808, "FCMPD");
  250. }
  251.  
  252. static char *
  253. output_24 (operands, insn)
  254.      rtx *operands;
  255.      rtx insn;
  256. {
  257.  
  258. {
  259.   cc_status.flags = CC_IN_68881; 
  260.   if (REG_P (operands[0]))
  261.     return "fcmp%.x %1,%0";
  262.   cc_status.flags |= CC_REVERSED;
  263.   return "fcmp%.x %0,%1";
  264. }
  265. }
  266.  
  267. static char *
  268. output_25 (operands, insn)
  269.      rtx *operands;
  270.      rtx insn;
  271. {
  272.  return output_sane_cmp(operands, 0x0008, "FCMPX");
  273. }
  274.  
  275. static char *
  276. output_26 (operands, insn)
  277.      rtx *operands;
  278.      rtx insn;
  279. {
  280.  { return output_btst (operands, operands[1], operands[0], insn, 7); }
  281. }
  282.  
  283. static char *
  284. output_27 (operands, insn)
  285.      rtx *operands;
  286.      rtx insn;
  287. {
  288.  { return output_btst (operands, operands[1], operands[0], insn, 31); }
  289. }
  290.  
  291. static char *
  292. output_28 (operands, insn)
  293.      rtx *operands;
  294.      rtx insn;
  295. {
  296.  { return output_btst (operands, operands[1], operands[0], insn, 7); }
  297. }
  298.  
  299. static char *
  300. output_29 (operands, insn)
  301.      rtx *operands;
  302.      rtx insn;
  303. {
  304.  { return output_btst (operands, operands[1], operands[0], insn, 31); }
  305. }
  306.  
  307. static char *
  308. output_30 (operands, insn)
  309.      rtx *operands;
  310.      rtx insn;
  311. {
  312.  
  313. {
  314.   operands[1] = gen_rtx (CONST_INT, VOIDmode, 7 - INTVAL (operands[1]));
  315.   return output_btst (operands, operands[1], operands[0], insn, 7);
  316. }
  317. }
  318.  
  319. static char *
  320. output_31 (operands, insn)
  321.      rtx *operands;
  322.      rtx insn;
  323. {
  324.  
  325. {
  326.   if (GET_CODE (operands[0]) == MEM)
  327.     {
  328.       operands[0] = adj_offsettable_operand (operands[0],
  329.                         INTVAL (operands[1]) / 8);
  330.       operands[1] = gen_rtx (CONST_INT, VOIDmode, 
  331.                  7 - INTVAL (operands[1]) % 8);
  332.       return output_btst (operands, operands[1], operands[0], insn, 7);
  333.     }
  334.   operands[1] = gen_rtx (CONST_INT, VOIDmode,
  335.              15 - INTVAL (operands[1]));
  336.   return output_btst (operands, operands[1], operands[0], insn, 15);
  337. }
  338. }
  339.  
  340. static char *
  341. output_32 (operands, insn)
  342.      rtx *operands;
  343.      rtx insn;
  344. {
  345.  
  346. {
  347.   if (GET_CODE (operands[0]) == MEM)
  348.     {
  349.       operands[0] = adj_offsettable_operand (operands[0],
  350.                         INTVAL (operands[1]) / 8);
  351.       operands[1] = gen_rtx (CONST_INT, VOIDmode, 
  352.                  7 - INTVAL (operands[1]) % 8);
  353.       return output_btst (operands, operands[1], operands[0], insn, 7);
  354.     }
  355.   operands[1] = gen_rtx (CONST_INT, VOIDmode,
  356.              31 - INTVAL (operands[1]));
  357.   return output_btst (operands, operands[1], operands[0], insn, 31);
  358. }
  359. }
  360.  
  361. static char *
  362. output_33 (operands, insn)
  363.      rtx *operands;
  364.      rtx insn;
  365. {
  366.  
  367. {
  368.   cc_status.flags = CC_Z_IN_NOT_N | CC_NOT_NEGATIVE;
  369.   return "tst%.b %0";
  370. }
  371. }
  372.  
  373. static char *
  374. output_34 (operands, insn)
  375.      rtx *operands;
  376.      rtx insn;
  377. {
  378.  
  379. { register int log = exact_log2 (INTVAL (operands[1]));
  380.   operands[1] = gen_rtx (CONST_INT, VOIDmode, log);
  381.   return output_btst (operands, operands[1], operands[0], insn, 7);
  382. }
  383. }
  384.  
  385. static char *
  386. output_35 (operands, insn)
  387.      rtx *operands;
  388.      rtx insn;
  389. {
  390.  
  391. {
  392.   if (operands[1] == const0_rtx)
  393.     return "clr%.l %0";
  394.   return "pea %a1";
  395. }
  396. }
  397.  
  398. static char *
  399. output_36 (operands, insn)
  400.      rtx *operands;
  401.      rtx insn;
  402. {
  403.  
  404. {
  405.   if (ADDRESS_REG_P (operands[0]))
  406.     return "sub%.l %0,%0";
  407.   return "clr%.l %0";
  408. }
  409. }
  410.  
  411. static char *
  412. output_37 (operands, insn)
  413.      rtx *operands;
  414.      rtx insn;
  415. {
  416.  
  417. {
  418.   if (GET_CODE (operands[1]) == CONST_INT)
  419.     {
  420.       if (operands[1] == const0_rtx
  421.       && (DATA_REG_P (operands[0])
  422.           || GET_CODE (operands[0]) == MEM))
  423.     return "clr%.l %0";
  424.       else if (DATA_REG_P (operands[0])
  425.            && INTVAL (operands[1]) < 128
  426.            && INTVAL (operands[1]) >= -128)
  427.         {
  428.           return "moveq%.l %1,%0";
  429.     }
  430.       else if (ADDRESS_REG_P (operands[0])
  431.            && INTVAL (operands[1]) < 0x8000
  432.            && INTVAL (operands[1]) >= -0x8000)
  433.     return "move%.w %1,%0";
  434.       else if (push_operand (operands[0], SImode)
  435.            && INTVAL (operands[1]) < 0x8000
  436.            && INTVAL (operands[1]) >= -0x8000)
  437.         return "pea %a1";
  438.     }
  439.   else if ((GET_CODE (operands[1]) == SYMBOL_REF
  440.         || GET_CODE (operands[1]) == CONST)
  441.        && push_operand (operands[0], SImode))
  442.     return "pea %a1";
  443.   else if ((GET_CODE (operands[1]) == SYMBOL_REF
  444.         || GET_CODE (operands[1]) == CONST)) {
  445.            if (ADDRESS_REG_P (operands[0])) {
  446.                return "lea %a1,%0";
  447.            } else {
  448.                return "pea %a1\n\tmove%.l %+,%0";
  449.            }
  450.   }
  451.   return "move%.l %1,%0";
  452. }
  453. }
  454.  
  455. static char *
  456. output_38 (operands, insn)
  457.      rtx *operands;
  458.      rtx insn;
  459. {
  460.  
  461. {
  462.   if (GET_CODE (operands[1]) == CONST_INT)
  463.     {
  464.       if (operands[1] == const0_rtx
  465.       && (DATA_REG_P (operands[0])
  466.           || GET_CODE (operands[0]) == MEM))
  467.     return "clr%.w %0";
  468.       else if (DATA_REG_P (operands[0])
  469.            && INTVAL (operands[1]) < 128
  470.            && INTVAL (operands[1]) >= -128)
  471.         {
  472.           return "moveq%.l %1,%0";
  473.     }
  474.       else if (INTVAL (operands[1]) < 0x8000
  475.            && INTVAL (operands[1]) >= -0x8000)
  476.     return "move%.w %1,%0";
  477.     }
  478.   else if (CONSTANT_P (operands[1]))
  479.     return "move%.l %1,%0";
  480.   return "move%.w %1,%0";
  481. }
  482. }
  483.  
  484. static char *
  485. output_39 (operands, insn)
  486.      rtx *operands;
  487.      rtx insn;
  488. {
  489.  
  490. {
  491.   if (GET_CODE (operands[1]) == CONST_INT)
  492.     {
  493.       if (operands[1] == const0_rtx
  494.       && (DATA_REG_P (operands[0])
  495.           || GET_CODE (operands[0]) == MEM))
  496.     return "clr%.w %0";
  497.     }
  498.   return "move%.w %1,%0";
  499. }
  500. }
  501.  
  502. static char *
  503. output_40 (operands, insn)
  504.      rtx *operands;
  505.      rtx insn;
  506. {
  507.  
  508. {
  509.   if (operands[1] == const0_rtx)
  510.     return "clr%.b %0";
  511.   if (GET_CODE (operands[1]) == CONST_INT
  512.       && INTVAL (operands[1]) == -1)
  513.     return "st %0";
  514.   if (GET_CODE (operands[1]) != CONST_INT && CONSTANT_P (operands[1]))
  515.     return "move%.l %1,%0";
  516.   if (ADDRESS_REG_P (operands[0]) || ADDRESS_REG_P (operands[1]))
  517.     return "move%.w %1,%0";
  518.   return "move%.b %1,%0";
  519. }
  520. }
  521.  
  522. static char *
  523. output_41 (operands, insn)
  524.      rtx *operands;
  525.      rtx insn;
  526. {
  527.  
  528. {
  529.   if (operands[1] == const0_rtx)
  530.     return "clr%.b %0";
  531.   return "move%.b %1,%0";
  532. }
  533. }
  534.  
  535. static char *
  536. output_42 (operands, insn)
  537.      rtx *operands;
  538.      rtx insn;
  539. {
  540.  
  541. {
  542.   if (FP_REG_P (operands[0]))
  543.     {
  544.       if (FP_REG_P (operands[1]))
  545.     return "fmove%.x %1,%0";
  546.       else if (ADDRESS_REG_P (operands[1]))
  547.     return "move%.l %1,%-\n\tfmove%.s %+,%0";
  548.       else if (GET_CODE (operands[1]) == CONST_DOUBLE)
  549.     return output_move_const_single (operands);
  550.       return "fmove%.s %1,%0";
  551.     }
  552.   if (FP_REG_P (operands[1]))
  553.     {
  554.       if (ADDRESS_REG_P (operands[0]))
  555.     return "fmove%.s %1,%-\n\tmove%.l %+,%0";
  556.       return "fmove%.s %1,%0";
  557.     }
  558.   return "move%.l %f1,%0";
  559. }
  560. }
  561.  
  562. static char *
  563. output_43 (operands, insn)
  564.      rtx *operands;
  565.      rtx insn;
  566. {
  567.  
  568. {
  569.   if (FP_REG_P (operands[0]))
  570.     {
  571.       if (FP_REG_P (operands[1]))
  572.     return "fmove%.x %1,%0";
  573.       if (REG_P (operands[1]))
  574.     {
  575.       rtx xoperands[2];
  576.       xoperands[1] = gen_rtx (REG, SImode, REGNO (operands[1]) + 1);
  577.       output_asm_insn ("move%.l %1,%-", xoperands);
  578.       output_asm_insn ("move%.l %1,%-", operands);
  579.       return "fmove%.d %+,%0";
  580.     }
  581.       if (GET_CODE (operands[1]) == CONST_DOUBLE)
  582.     return output_move_const_double (operands);
  583.       return "fmove%.d %1,%0";
  584.     }
  585.   else if (FP_REG_P (operands[1]))
  586.     {
  587.       if (REG_P (operands[0]))
  588.     {
  589.       output_asm_insn ("fmove%.d %1,%-\n\tmove%.l %+,%0", operands);
  590.       operands[0] = gen_rtx (REG, SImode, REGNO (operands[0]) + 1);
  591.       return "move%.l %+,%0";
  592.     }
  593.       else
  594.         return "fmove%.d %1,%0";
  595.     }
  596.   return output_move_double (operands);
  597. }
  598.  
  599. }
  600.  
  601. static char *
  602. output_44 (operands, insn)
  603.      rtx *operands;
  604.      rtx insn;
  605. {
  606.  
  607. {
  608.   if (FP_REG_P (operands[0]))
  609.     {
  610.       if (FP_REG_P (operands[1]))
  611.     return "fmove%.x %1,%0";
  612.       if (REG_P (operands[1]))
  613.     {
  614.       rtx xoperands[2], xxoperands[2];
  615.       xoperands[1] = gen_rtx (REG, SImode, REGNO (operands[1]) + 1);
  616.       xxoperands[1] = gen_rtx (REG, SImode, REGNO (operands[1]) + 2);
  617.       output_asm_insn ("move%.l %1,%-", xxoperands);
  618.       output_asm_insn ("move%.l %1,%-", xoperands);
  619.       output_asm_insn ("move%.l %1,%-", operands);
  620.       return "fmove%.x %+,%0";
  621.     }
  622.       if (GET_CODE (operands[1]) == CONST_DOUBLE)
  623.     return output_move_const_long_double (operands);
  624.       return "fmove%.x %1,%0";
  625.     }
  626.   else if (FP_REG_P (operands[1]))
  627.     {
  628.       if (REG_P (operands[0]))
  629.     {
  630.       output_asm_insn ("fmove%.x %1,%-\n\tmove%.l %+,%0", operands);
  631.       operands[0] = gen_rtx (REG, SImode, REGNO (operands[0]) + 1);
  632.       output_asm_insn ("move%.l %+,%0", operands);
  633.       operands[0] = gen_rtx (REG, SImode, REGNO (operands[0]) + 1);
  634.       return "move%.l %+,%0";
  635.     }
  636.       else
  637.         return "fmove%.x %1,%0";
  638.     }
  639.   return output_move_extended (operands);
  640. }
  641.  
  642. }
  643.  
  644. static char *
  645. output_45 (operands, insn)
  646.      rtx *operands;
  647.      rtx insn;
  648. {
  649.  
  650. {
  651.   if (FP_REG_P (operands[0]))
  652.     {
  653.       if (FP_REG_P (operands[1]))
  654.     return "fmove%.x %1,%0";
  655.       if (REG_P (operands[1]))
  656.     {
  657.       rtx xoperands[2];
  658.       xoperands[1] = gen_rtx (REG, SImode, REGNO (operands[1]) + 1);
  659.       output_asm_insn ("move%.l %1,%-", xoperands);
  660.       output_asm_insn ("move%.l %1,%-", operands);
  661.       return "fmove%.d %+,%0";
  662.     }
  663.       if (GET_CODE (operands[1]) == CONST_DOUBLE)
  664.     return output_move_const_double (operands);
  665.       return "fmove%.d %1,%0";
  666.     }
  667.   else if (FP_REG_P (operands[1]))
  668.     {
  669.       if (REG_P (operands[0]))
  670.     {
  671.       output_asm_insn ("fmove%.d %1,%-\n\tmove%.l %+,%0", operands);
  672.       operands[0] = gen_rtx (REG, SImode, REGNO (operands[0]) + 1);
  673.       return "move%.l %+,%0";
  674.     }
  675.       else
  676.         return "fmove%.d %1,%0";
  677.     }
  678.   return output_move_double (operands);
  679. }
  680.  
  681. }
  682.  
  683. static char *
  684. output_47 (operands, insn)
  685.      rtx *operands;
  686.      rtx insn;
  687. {
  688.  
  689. {
  690.   if (GET_CODE (operands[0]) == REG)
  691.     return "move%.l %1,%0";
  692.   if (GET_CODE (operands[1]) == MEM)
  693.     operands[1] = adj_offsettable_operand (operands[1], 3);
  694.   return "move%.b %1,%0";
  695. }
  696. }
  697.  
  698. static char *
  699. output_48 (operands, insn)
  700.      rtx *operands;
  701.      rtx insn;
  702. {
  703.  
  704. {
  705.   if (GET_CODE (operands[0]) == REG)
  706.     return "move%.l %1,%0";
  707.   if (GET_CODE (operands[1]) == MEM)
  708.     operands[1] = adj_offsettable_operand (operands[1], 1);
  709.   return "move%.b %1,%0";
  710. }
  711. }
  712.  
  713. static char *
  714. output_49 (operands, insn)
  715.      rtx *operands;
  716.      rtx insn;
  717. {
  718.  
  719. {
  720.   if (GET_CODE (operands[0]) == REG)
  721.     return "move%.l %1,%0";
  722.   if (GET_CODE (operands[1]) == MEM)
  723.     operands[1] = adj_offsettable_operand (operands[1], 2);
  724.   return "move%.w %1,%0";
  725. }
  726. }
  727.  
  728. static char *
  729. output_53 (operands, insn)
  730.      rtx *operands;
  731.      rtx insn;
  732. {
  733.  
  734. {
  735.   if (DATA_REG_P (operands[0]))
  736.     {
  737.       if (GET_CODE (operands[1]) == REG
  738.       && REGNO (operands[0]) == REGNO (operands[1]))
  739.     return "and%.l #$FFFF,%0";
  740.       if (reg_mentioned_p (operands[0], operands[1]))
  741.         return "move%.w %1,%0\n\tand%.l #$FFFF,%0";
  742.       return "clr%.l %0\n\tmove%.w %1,%0";
  743.     }
  744.   else if (GET_CODE (operands[0]) == MEM
  745.        && GET_CODE (XEXP (operands[0], 0)) == PRE_DEC)
  746.     return "move%.w %1,%0\n\tclr%.w %0";
  747.   else if (GET_CODE (operands[0]) == MEM
  748.        && GET_CODE (XEXP (operands[0], 0)) == POST_INC)
  749.     return "clr%.w %0\n\tmove%.w %1,%0";
  750.   else
  751.     {
  752.       output_asm_insn ("clr%.w %0", operands);
  753.       operands[0] = adj_offsettable_operand (operands[0], 2);
  754.       return "move%.w %1,%0";
  755.     }
  756. }
  757. }
  758.  
  759. static char *
  760. output_54 (operands, insn)
  761.      rtx *operands;
  762.      rtx insn;
  763. {
  764.  
  765. {
  766.   if (DATA_REG_P (operands[0]))
  767.     {
  768.       if (GET_CODE (operands[1]) == REG
  769.       && REGNO (operands[0]) == REGNO (operands[1]))
  770.     return "and%.w #$FF,%0";
  771.       if (reg_mentioned_p (operands[0], operands[1]))
  772.         return "move%.b %1,%0\n\tand%.w #$FF,%0";
  773.       return "clr%.w %0\n\tmove%.b %1,%0";
  774.     }
  775.   else if (GET_CODE (operands[0]) == MEM
  776.        && GET_CODE (XEXP (operands[0], 0)) == PRE_DEC)
  777.     {
  778.       if (REGNO (XEXP (XEXP (operands[0], 0), 0))
  779.       == STACK_POINTER_REGNUM)
  780.     return "clr%.w %-\n\tmove%.b %1,%0";
  781.       else
  782.     return "move%.b %1,%0\n\tclr%.b %0";
  783.     }
  784.   else if (GET_CODE (operands[0]) == MEM
  785.        && GET_CODE (XEXP (operands[0], 0)) == POST_INC)
  786.     return "clr%.b %0\n\tmove%.b %1,%0";
  787.   else
  788.     {
  789.       output_asm_insn ("clr%.b %0", operands);
  790.       operands[0] = adj_offsettable_operand (operands[0], 1);
  791.       return "move%.b %1,%0";
  792.     }
  793. }
  794. }
  795.  
  796. static char *
  797. output_55 (operands, insn)
  798.      rtx *operands;
  799.      rtx insn;
  800. {
  801.  
  802. {
  803.   if (DATA_REG_P (operands[0]))
  804.     {
  805.       if (GET_CODE (operands[1]) == REG
  806.       && REGNO (operands[0]) == REGNO (operands[1]))
  807.     return "and%.l #$FF,%0";
  808.       if (reg_mentioned_p (operands[0], operands[1]))
  809.         return "move%.b %1,%0\n\tand%.l #$FF,%0";
  810.       return "clr%.l %0\n\tmove%.b %1,%0";
  811.     }
  812.   else if (GET_CODE (operands[0]) == MEM
  813.        && GET_CODE (XEXP (operands[0], 0)) == PRE_DEC)
  814.     {
  815.       operands[0] = XEXP (XEXP (operands[0], 0), 0);
  816.       return "clr%.l -(%0)\n\tmove%.b %1,(3,%0)";
  817.     }
  818.   else if (GET_CODE (operands[0]) == MEM
  819.        && GET_CODE (XEXP (operands[0], 0)) == POST_INC)
  820.     {
  821.       operands[0] = XEXP (XEXP (operands[0], 0), 0);
  822.       return "clr%.l (%0)+\n\tmove%.b %1,(-1,%0)";
  823.     }
  824.   else
  825.     {
  826.       output_asm_insn ("clr%.l %0", operands);
  827.       operands[0] = adj_offsettable_operand (operands[0], 3);
  828.       return "move%.b %1,%0";
  829.     }
  830. }
  831. }
  832.  
  833. static char *
  834. output_56 (operands, insn)
  835.      rtx *operands;
  836.      rtx insn;
  837. {
  838.  
  839. {
  840.   if (ADDRESS_REG_P (operands[0]))
  841.     return "move%.w %1,%0";
  842.   return "ext%.l %0";
  843. }
  844. }
  845.  
  846. static char *
  847. output_60 (operands, insn)
  848.      rtx *operands;
  849.      rtx insn;
  850. {
  851.  
  852. {
  853.   if (FP_REG_P (operands[0]) && FP_REG_P (operands[1]))
  854.     {
  855.       if (REGNO (operands[0]) == REGNO (operands[1]))
  856.     {
  857.       /* Extending float to double in an fp-reg is a no-op.
  858.          NOTICE_UPDATE_CC has already assumed that the
  859.          cc will be set.  So cancel what it did.  */
  860.       cc_status = cc_prev_status;
  861.       return "";
  862.     }
  863.       return "fmove%.x %1,%0";
  864.     }
  865.   if (FP_REG_P (operands[0]))
  866.     return "fmove%.s %1,%0";
  867.   if (DATA_REG_P (operands[0]) && FP_REG_P (operands[1]))
  868.     {
  869.       output_asm_insn ("fmove%.d %1,%-\n\tmove%.l %+,%0", operands);
  870.       /* seems unreliable - what if opnd 0 was d7? */
  871.       operands[0] = gen_rtx (REG, SImode, REGNO (operands[0]) + 1);
  872.       return "move%.l %+,%0";
  873.     }
  874.   if (FP_REG_P (operands[0]) || FP_REG_P (operands[1]))
  875.     return "fmove%.d %1,%0";
  876. }
  877. }
  878.  
  879. static char *
  880. output_61 (operands, insn)
  881.      rtx *operands;
  882.      rtx insn;
  883. {
  884.  return output_sane_convert(operands);
  885. }
  886.  
  887. static char *
  888. output_63 (operands, insn)
  889.      rtx *operands;
  890.      rtx insn;
  891. {
  892.  
  893. {
  894.   if (FP_REG_P (operands[0]) && FP_REG_P (operands[1]))
  895.     {
  896.       if (REGNO (operands[0]) == REGNO (operands[1]))
  897.     {
  898.       /* Extending float to long double in an fp-reg is a no-op.
  899.          NOTICE_UPDATE_CC has already assumed that the
  900.          cc will be set.  So cancel what it did.  */
  901.       cc_status = cc_prev_status;
  902.       return "";
  903.     }
  904.       return "fmove%.x %1,%0";
  905.     }
  906.   if (FP_REG_P (operands[0]))
  907.     return "fmove%.s %1,%0";
  908.   return "fmove%.x %1,%0";
  909. }
  910. }
  911.  
  912. static char *
  913. output_64 (operands, insn)
  914.      rtx *operands;
  915.      rtx insn;
  916. {
  917.  return output_sane_convert(operands);
  918. }
  919.  
  920. static char *
  921. output_66 (operands, insn)
  922.      rtx *operands;
  923.      rtx insn;
  924. {
  925.  
  926. {
  927.   if (FP_REG_P (operands[0]) && FP_REG_P (operands[1]))
  928.     {
  929.       if (REGNO (operands[0]) == REGNO (operands[1]))
  930.     {
  931.       /* Extending double to long double in an fp-reg is a no-op.
  932.          NOTICE_UPDATE_CC has already assumed that the
  933.          cc will be set.  So cancel what it did.  */
  934.       cc_status = cc_prev_status;
  935.       return "";
  936.     }
  937.       return "fmove%.x %1,%0";
  938.     }
  939.   if (FP_REG_P (operands[0]))
  940.     return "fmove%.d %1,%0";
  941.   return "fmove%.x %1,%0";
  942. }
  943. }
  944.  
  945. static char *
  946. output_67 (operands, insn)
  947.      rtx *operands;
  948.      rtx insn;
  949. {
  950.  return output_sane_convert (operands);
  951. }
  952.  
  953. static char *
  954. output_70 (operands, insn)
  955.      rtx *operands;
  956.      rtx insn;
  957. {
  958.  return output_sane_convert (operands);
  959. }
  960.  
  961. static char *
  962. output_73 (operands, insn)
  963.      rtx *operands;
  964.      rtx insn;
  965. {
  966.  return output_sane_convert (operands);
  967. }
  968.  
  969. static char *
  970. output_75 (operands, insn)
  971.      rtx *operands;
  972.      rtx insn;
  973. {
  974.  
  975. {
  976.   if (DATA_REG_P (operands[0]))
  977.     {
  978.       output_asm_insn ("fmove%.d %1,%-\n\tmove%.l %+,%0", operands);
  979.       operands[0] = gen_rtx (REG, SImode, REGNO (operands[0]) + 1);
  980.       return "move%.l %+,%0";
  981.     }
  982.   return "fmove%.d %1,%0";
  983. }
  984. }
  985.  
  986. static char *
  987. output_76 (operands, insn)
  988.      rtx *operands;
  989.      rtx insn;
  990. {
  991.  return output_sane_convert (operands);
  992. }
  993.  
  994. static char *
  995. output_79 (operands, insn)
  996.      rtx *operands;
  997.      rtx insn;
  998. {
  999.  return output_sane_convert (operands);
  1000. }
  1001.  
  1002. static char *
  1003. output_82 (operands, insn)
  1004.      rtx *operands;
  1005.      rtx insn;
  1006. {
  1007.  return output_sane_convert (operands);
  1008. }
  1009.  
  1010. static char *
  1011. output_85 (operands, insn)
  1012.      rtx *operands;
  1013.      rtx insn;
  1014. {
  1015.  return output_sane_convert (operands);
  1016. }
  1017.  
  1018. static char *
  1019. output_93 (operands, insn)
  1020.      rtx *operands;
  1021.      rtx insn;
  1022. {
  1023.  return output_sane_2 (operands, 0x0016, "FTINTX");
  1024. }
  1025.  
  1026. static char *
  1027. output_94 (operands, insn)
  1028.      rtx *operands;
  1029.      rtx insn;
  1030. {
  1031.  
  1032. {
  1033.   if (FP_REG_P (operands[1]))
  1034.     return "fintrz%.x %1,%0";
  1035.   return "fintrz%.s%1,%0";
  1036. }
  1037. }
  1038.  
  1039. static char *
  1040. output_96 (operands, insn)
  1041.      rtx *operands;
  1042.      rtx insn;
  1043. {
  1044.  return output_sane_2 (operands, 0x0016, "FTINTX");
  1045. }
  1046.  
  1047. static char *
  1048. output_97 (operands, insn)
  1049.      rtx *operands;
  1050.      rtx insn;
  1051. {
  1052.  
  1053. {
  1054.   if (FP_REG_P (operands[1]))
  1055.     return "fintrz%.x %1,%0";
  1056.   return "fintrz%.d %1,%0";
  1057. }
  1058. }
  1059.  
  1060. static char *
  1061. output_99 (operands, insn)
  1062.      rtx *operands;
  1063.      rtx insn;
  1064. {
  1065.  return output_sane_2 (operands, 0x0016, "FTINTX");
  1066. }
  1067.  
  1068. static char *
  1069. output_110 (operands, insn)
  1070.      rtx *operands;
  1071.      rtx insn;
  1072. {
  1073.  return output_lib_convert(operands, "_XTOI");
  1074. }
  1075.  
  1076. static char *
  1077. output_113 (operands, insn)
  1078.      rtx *operands;
  1079.      rtx insn;
  1080. {
  1081.  return output_lib_convert(operands, "_XTOU");
  1082. }
  1083.  
  1084. static char *
  1085. output_115 (operands, insn)
  1086.      rtx *operands;
  1087.      rtx insn;
  1088. {
  1089.  
  1090. {
  1091.   if (! operands_match_p (operands[0], operands[1]))
  1092.     {
  1093.       if (!ADDRESS_REG_P (operands[1]))
  1094.     {
  1095.       rtx tmp = operands[1];
  1096.  
  1097.       operands[1] = operands[2];
  1098.       operands[2] = tmp;
  1099.     }
  1100.  
  1101.       /* These insns can result from reloads to access
  1102.      stack slots over 64k from the frame pointer.  */
  1103.       if (GET_CODE (operands[2]) == CONST_INT
  1104.       && INTVAL (operands[2]) + 0x8000 >= (unsigned) 0x10000)
  1105.         return "move%.l %2,%0\n\tadd%.l %1,%0";
  1106.       if (GET_CODE (operands[2]) == REG)
  1107.     return TARGET_GAS?"lea %1@(%2:l),%0":"lea (%1,%2.l),%0";
  1108.       else
  1109.     return TARGET_GAS?"lea %1@(%c2),%0":"lea (%c2,%1),%0";
  1110.     }
  1111.   if (GET_CODE (operands[2]) == CONST_INT)
  1112.     {
  1113.       if (INTVAL (operands[2]) > 0
  1114.       && INTVAL (operands[2]) <= 8)
  1115.     return (ADDRESS_REG_P (operands[0])
  1116.         ? "addq%.w %2,%0"
  1117.         : "addq%.l %2,%0");
  1118.       if (INTVAL (operands[2]) < 0
  1119.       && INTVAL (operands[2]) >= -8)
  1120.         {
  1121.       operands[2] = gen_rtx (CONST_INT, VOIDmode,
  1122.                      - INTVAL (operands[2]));
  1123.       return (ADDRESS_REG_P (operands[0])
  1124.           ? "subq%.w %2,%0"
  1125.           : "subq%.l %2,%0");
  1126.     }
  1127.       if (ADDRESS_REG_P (operands[0])
  1128.       && INTVAL (operands[2]) >= -0x8000
  1129.       && INTVAL (operands[2]) < 0x8000)
  1130.     return "add%.w %2,%0";
  1131.     }
  1132.   return "add%.l %2,%0";
  1133. }
  1134. }
  1135.  
  1136. static char *
  1137. output_117 (operands, insn)
  1138.      rtx *operands;
  1139.      rtx insn;
  1140. {
  1141.  
  1142. {
  1143.   if (GET_CODE (operands[2]) == CONST_INT)
  1144.     {
  1145.       if (INTVAL (operands[2]) > 0
  1146.       && INTVAL (operands[2]) <= 8)
  1147.     return "addq%.w %2,%0";
  1148.     }
  1149.   if (GET_CODE (operands[2]) == CONST_INT)
  1150.     {
  1151.       if (INTVAL (operands[2]) < 0
  1152.       && INTVAL (operands[2]) >= -8)
  1153.     {
  1154.       operands[2] = gen_rtx (CONST_INT, VOIDmode,
  1155.                      - INTVAL (operands[2]));
  1156.       return "subq%.w %2,%0";
  1157.     }
  1158.     }
  1159.   return "add%.w %2,%0";
  1160. }
  1161. }
  1162.  
  1163. static char *
  1164. output_119 (operands, insn)
  1165.      rtx *operands;
  1166.      rtx insn;
  1167. {
  1168.  
  1169. {
  1170.   if (GET_CODE (operands[2]) == CONST_INT)
  1171.     {
  1172.       if (INTVAL (operands[2]) > 0
  1173.       && INTVAL (operands[2]) <= 8)
  1174.     return "addq%.b %2,%0";
  1175.     }
  1176.   if (GET_CODE (operands[2]) == CONST_INT)
  1177.     {
  1178.       if (INTVAL (operands[2]) < 0 && INTVAL (operands[2]) >= -8)
  1179.        {
  1180.      operands[2] = gen_rtx (CONST_INT, VOIDmode, - INTVAL (operands[2]));
  1181.      return "subq%.b %2,%0";
  1182.        }
  1183.     }
  1184.   return "add%.b %2,%0";
  1185. }
  1186. }
  1187.  
  1188. static char *
  1189. output_122 (operands, insn)
  1190.      rtx *operands;
  1191.      rtx insn;
  1192. {
  1193.  
  1194. {
  1195.   if (REG_P (operands[2]) && ! DATA_REG_P (operands[2]))
  1196.     return "fadd%.x %2,%0";
  1197.   return "fadd%.s%2,%0";
  1198. }
  1199. }
  1200.  
  1201. static char *
  1202. output_123 (operands, insn)
  1203.      rtx *operands;
  1204.      rtx insn;
  1205. {
  1206.  return output_sane_3 (operands, 0x1000, "FADDS");
  1207. }
  1208.  
  1209. static char *
  1210. output_125 (operands, insn)
  1211.      rtx *operands;
  1212.      rtx insn;
  1213. {
  1214.  
  1215. {
  1216.   if (REG_P (operands[2]))
  1217.     return "fadd%.x %2,%0";
  1218.   return "fadd%.d %2,%0";
  1219. }
  1220. }
  1221.  
  1222. static char *
  1223. output_126 (operands, insn)
  1224.      rtx *operands;
  1225.      rtx insn;
  1226. {
  1227.  return output_sane_3 (operands, 0x0800, "FADDD");
  1228. }
  1229.  
  1230. static char *
  1231. output_129 (operands, insn)
  1232.      rtx *operands;
  1233.      rtx insn;
  1234. {
  1235.  return output_sane_3 (operands, 0x0000, "FADDX");
  1236. }
  1237.  
  1238. static char *
  1239. output_130 (operands, insn)
  1240.      rtx *operands;
  1241.      rtx insn;
  1242. {
  1243.  
  1244. {
  1245.   if (! operands_match_p (operands[0], operands[1]))
  1246.     {
  1247.       if (operands_match_p (operands[0], operands[2]))
  1248.     {
  1249.       if (GET_CODE (operands[1]) == CONST_INT)
  1250.         {
  1251.           if (INTVAL (operands[1]) > 0
  1252.           && INTVAL (operands[1]) <= 8)
  1253.         return "subq%.l %1,%0\n\tneg%.l %0";
  1254.         }
  1255.       return "sub%.l %1,%0\n\tneg%.l %0";
  1256.     }
  1257.       /* This case is matched by J, but negating -0x8000
  1258.          in an lea would give an invalid displacement.
  1259.      So do this specially.  */
  1260.       if (INTVAL (operands[2]) == -0x8000)
  1261.     return "move%.l %1,%0\n\tsub%.l %2,%0";
  1262.       return TARGET_GAS?"lea %1@(%n2),%0":"lea (%n2,%1),%0";
  1263.     }
  1264.   if (GET_CODE (operands[2]) == CONST_INT)
  1265.     {
  1266.       if (INTVAL (operands[2]) > 0
  1267.       && INTVAL (operands[2]) <= 8)
  1268.     return "subq%.l %2,%0";
  1269.       if (ADDRESS_REG_P (operands[0])
  1270.       && INTVAL (operands[2]) >= -0x8000
  1271.       && INTVAL (operands[2]) < 0x8000)
  1272.     return "sub%.w %2,%0";
  1273.     }
  1274.   if (GET_CODE (operands[2]) == SYMBOL_REF)
  1275.     {
  1276.       return "pea %a2\n\tsub%.l %+,%0";
  1277.     }
  1278.   return "sub%.l %2,%0";
  1279. }
  1280. }
  1281.  
  1282. static char *
  1283. output_137 (operands, insn)
  1284.      rtx *operands;
  1285.      rtx insn;
  1286. {
  1287.  
  1288. {
  1289.   if (REG_P (operands[2]) && ! DATA_REG_P (operands[2]))
  1290.     return "fsub%.x %2,%0";
  1291.   return "fsub%.s%2,%0";
  1292. }
  1293. }
  1294.  
  1295. static char *
  1296. output_138 (operands, insn)
  1297.      rtx *operands;
  1298.      rtx insn;
  1299. {
  1300.  return output_sane_3 (operands, 0x1002, "FSUBS");
  1301. }
  1302.  
  1303. static char *
  1304. output_140 (operands, insn)
  1305.      rtx *operands;
  1306.      rtx insn;
  1307. {
  1308.  
  1309. {
  1310.   if (REG_P (operands[2]))
  1311.     return "fsub%.x %2,%0";
  1312.   return "fsub%.d %2,%0";
  1313. }
  1314. }
  1315.  
  1316. static char *
  1317. output_141 (operands, insn)
  1318.      rtx *operands;
  1319.      rtx insn;
  1320. {
  1321.  return output_sane_3 (operands, 0x0802, "FSUBD");
  1322. }
  1323.  
  1324. static char *
  1325. output_144 (operands, insn)
  1326.      rtx *operands;
  1327.      rtx insn;
  1328. {
  1329.  return output_sane_3 (operands, 0x0002, "FSUBX");
  1330. }
  1331.  
  1332. static char *
  1333. output_149 (operands, insn)
  1334.      rtx *operands;
  1335.      rtx insn;
  1336. {
  1337.  return output_int_lib_call (operands, "ULMULT");
  1338. }
  1339.  
  1340. static char *
  1341. output_154 (operands, insn)
  1342.      rtx *operands;
  1343.      rtx insn;
  1344. {
  1345.  return output_int_lib_call (operands, "ULMULT");
  1346. }
  1347.  
  1348. static char *
  1349. output_156 (operands, insn)
  1350.      rtx *operands;
  1351.      rtx insn;
  1352. {
  1353.  
  1354. {
  1355.   if (REG_P (operands[2]) && ! DATA_REG_P (operands[2]))
  1356.     return "fsglmul%.x %2,%0";
  1357.   return "fsglmul%.s%2,%0";
  1358. }
  1359. }
  1360.  
  1361. static char *
  1362. output_157 (operands, insn)
  1363.      rtx *operands;
  1364.      rtx insn;
  1365. {
  1366.  return output_sane_3 (operands, 0x1004, "FMULS");
  1367. }
  1368.  
  1369. static char *
  1370. output_159 (operands, insn)
  1371.      rtx *operands;
  1372.      rtx insn;
  1373. {
  1374.  
  1375. {
  1376.   if (REG_P (operands[2]))
  1377.     return "fmul%.x %2,%0";
  1378.   return "fmul%.d %2,%0";
  1379. }
  1380. }
  1381.  
  1382. static char *
  1383. output_160 (operands, insn)
  1384.      rtx *operands;
  1385.      rtx insn;
  1386. {
  1387.  return output_sane_3 (operands, 0x0804, "FMULD");
  1388. }
  1389.  
  1390. static char *
  1391. output_163 (operands, insn)
  1392.      rtx *operands;
  1393.      rtx insn;
  1394. {
  1395.  return output_sane_3 (operands, 0x0004, "FMULX");
  1396. }
  1397.  
  1398. static char *
  1399. output_168 (operands, insn)
  1400.      rtx *operands;
  1401.      rtx insn;
  1402. {
  1403.  return output_int_lib_call (operands, "SLDIVT");
  1404. }
  1405.  
  1406. static char *
  1407. output_173 (operands, insn)
  1408.      rtx *operands;
  1409.      rtx insn;
  1410. {
  1411.  return output_int_lib_call (operands, "ULDIVT");
  1412. }
  1413.  
  1414. static char *
  1415. output_175 (operands, insn)
  1416.      rtx *operands;
  1417.      rtx insn;
  1418. {
  1419.  
  1420. {
  1421.   if (REG_P (operands[2]) && ! DATA_REG_P (operands[2]))
  1422.     return "fsgldiv%.x %2,%0";
  1423.   return "fsgldiv%.s%2,%0";
  1424. }
  1425. }
  1426.  
  1427. static char *
  1428. output_176 (operands, insn)
  1429.      rtx *operands;
  1430.      rtx insn;
  1431. {
  1432.  return output_sane_3 (operands, 0x1006, "FDIVS");
  1433. }
  1434.  
  1435. static char *
  1436. output_178 (operands, insn)
  1437.      rtx *operands;
  1438.      rtx insn;
  1439. {
  1440.  
  1441. {
  1442.   if (REG_P (operands[2]))
  1443.     return "fdiv%.x %2,%0";
  1444.   return "fdiv%.d %2,%0";
  1445. }
  1446. }
  1447.  
  1448. static char *
  1449. output_179 (operands, insn)
  1450.      rtx *operands;
  1451.      rtx insn;
  1452. {
  1453.  return output_sane_3 (operands, 0x0806, "FDIVD");
  1454. }
  1455.  
  1456. static char *
  1457. output_182 (operands, insn)
  1458.      rtx *operands;
  1459.      rtx insn;
  1460. {
  1461.  return output_sane_3 (operands, 0x0006, "FDIVX");
  1462. }
  1463.  
  1464. static char *
  1465. output_183 (operands, insn)
  1466.      rtx *operands;
  1467.      rtx insn;
  1468. {
  1469.  
  1470. {
  1471.   /* The swap insn produces cc's that don't correspond to the result.  */
  1472.   CC_STATUS_INIT;
  1473.   return "ext%.l %0\n\tdivs%.w %2,%0\n\tswap %0";
  1474. }
  1475. }
  1476.  
  1477. static char *
  1478. output_184 (operands, insn)
  1479.      rtx *operands;
  1480.      rtx insn;
  1481. {
  1482.  
  1483. {
  1484.   /* The swap insn produces cc's that don't correspond to the result.  */
  1485.   CC_STATUS_INIT;
  1486.   return "divs%.w %2,%0\n\tswap %0";
  1487. }
  1488. }
  1489.  
  1490. static char *
  1491. output_185 (operands, insn)
  1492.      rtx *operands;
  1493.      rtx insn;
  1494. {
  1495.  
  1496. {
  1497.   /* The swap insn produces cc's that don't correspond to the result.  */
  1498.   CC_STATUS_INIT;
  1499.   return "and%.l #$FFFF,%0\n\tdivu%.w %2,%0\n\tswap %0";
  1500. }
  1501. }
  1502.  
  1503. static char *
  1504. output_186 (operands, insn)
  1505.      rtx *operands;
  1506.      rtx insn;
  1507. {
  1508.  
  1509. {
  1510.   /* The swap insn produces cc's that don't correspond to the result.  */
  1511.   CC_STATUS_INIT;
  1512.   return "divu%.w %2,%0\n\tswap %0";
  1513. }
  1514. }
  1515.  
  1516. static char *
  1517. output_189 (operands, insn)
  1518.      rtx *operands;
  1519.      rtx insn;
  1520. {
  1521.  
  1522. {
  1523.   if (GET_CODE (operands[2]) == CONST_INT
  1524.       && (INTVAL (operands[2]) | 0xffff) == 0xffffffff
  1525.       && (DATA_REG_P (operands[0])
  1526.       || offsettable_memref_p (operands[0])))
  1527.     { 
  1528.       if (GET_CODE (operands[0]) != REG)
  1529.         operands[0] = adj_offsettable_operand (operands[0], 2);
  1530.       operands[2] = gen_rtx (CONST_INT, VOIDmode,
  1531.                  INTVAL (operands[2]) & 0xffff);
  1532.       /* Do not delete a following tstl %0 insn; that would be incorrect.  */
  1533.       CC_STATUS_INIT;
  1534.       if (operands[2] == const0_rtx)
  1535.         return "clr%.w %0";
  1536.       return "and%.w %2,%0";
  1537.     }
  1538.   return "and%.l %2,%0";
  1539. }
  1540. }
  1541.  
  1542. static char *
  1543. output_194 (operands, insn)
  1544.      rtx *operands;
  1545.      rtx insn;
  1546. {
  1547.  
  1548. {
  1549.   register int logval;
  1550.   if (GET_CODE (operands[2]) == CONST_INT
  1551.       && INTVAL (operands[2]) >> 16 == 0
  1552.       && (DATA_REG_P (operands[0])
  1553.       || offsettable_memref_p (operands[0])))
  1554.     { 
  1555.       if (GET_CODE (operands[0]) != REG)
  1556.         operands[0] = adj_offsettable_operand (operands[0], 2);
  1557.       /* Do not delete a following tstl %0 insn; that would be incorrect.  */
  1558.       CC_STATUS_INIT;
  1559.       return "or%.w %2,%0";
  1560.     }
  1561.   if (GET_CODE (operands[2]) == CONST_INT
  1562.       && (logval = exact_log2 (INTVAL (operands[2]))) >= 0
  1563.       && (DATA_REG_P (operands[0])
  1564.       || offsettable_memref_p (operands[0])))
  1565.     { 
  1566.       if (DATA_REG_P (operands[0]))
  1567.     {
  1568.       operands[1] = gen_rtx (CONST_INT, VOIDmode, logval);
  1569.     }
  1570.       else
  1571.         {
  1572.       operands[0] = adj_offsettable_operand (operands[0], 3 - (logval / 8));
  1573.       operands[1] = gen_rtx (CONST_INT, VOIDmode, logval % 8);
  1574.     }
  1575.       return "bset %1,%0";
  1576.     }
  1577.   return "or%.l %2,%0";
  1578. }
  1579. }
  1580.  
  1581. static char *
  1582. output_197 (operands, insn)
  1583.      rtx *operands;
  1584.      rtx insn;
  1585. {
  1586.  
  1587. {
  1588.   if (GET_CODE (operands[2]) == CONST_INT
  1589.       && INTVAL (operands[2]) >> 16 == 0
  1590.       && (offsettable_memref_p (operands[0]) || DATA_REG_P (operands[0])))
  1591.     { 
  1592.       if (! DATA_REG_P (operands[0]))
  1593.     operands[0] = adj_offsettable_operand (operands[0], 2);
  1594.       /* Do not delete a following tstl %0 insn; that would be incorrect.  */
  1595.       CC_STATUS_INIT;
  1596.       return "eor%.w %2,%0";
  1597.     }
  1598.   return "eor%.l %2,%0";
  1599. }
  1600. }
  1601.  
  1602. static char *
  1603. output_204 (operands, insn)
  1604.      rtx *operands;
  1605.      rtx insn;
  1606. {
  1607.  
  1608. {
  1609.   if (REG_P (operands[1]) && ! DATA_REG_P (operands[1]))
  1610.     return "fneg%.x %1,%0";
  1611.   return "fneg%.s%1,%0";
  1612. }
  1613. }
  1614.  
  1615. static char *
  1616. output_205 (operands, insn)
  1617.      rtx *operands;
  1618.      rtx insn;
  1619. {
  1620.  return output_sane_2 (operands, 0x000d, "FNEGX");
  1621. }
  1622.  
  1623. static char *
  1624. output_207 (operands, insn)
  1625.      rtx *operands;
  1626.      rtx insn;
  1627. {
  1628.  
  1629. {
  1630.   if (REG_P (operands[1]) && ! DATA_REG_P (operands[1]))
  1631.     return "fneg%.x %1,%0";
  1632.   return "fneg%.d %1,%0";
  1633. }
  1634. }
  1635.  
  1636. static char *
  1637. output_208 (operands, insn)
  1638.      rtx *operands;
  1639.      rtx insn;
  1640. {
  1641.  return output_sane_2 (operands, 0x000d, "FNEGX");
  1642. }
  1643.  
  1644. static char *
  1645. output_211 (operands, insn)
  1646.      rtx *operands;
  1647.      rtx insn;
  1648. {
  1649.  return output_sane_2 (operands, 0x000d, "FNEGX");
  1650. }
  1651.  
  1652. static char *
  1653. output_226 (operands, insn)
  1654.      rtx *operands;
  1655.      rtx insn;
  1656. {
  1657.  
  1658. {
  1659.   if (REG_P (operands[1]) && ! DATA_REG_P (operands[1]))
  1660.     return "fabs%.x %1,%0";
  1661.   return "fabs%.s%1,%0";
  1662. }
  1663. }
  1664.  
  1665. static char *
  1666. output_227 (operands, insn)
  1667.      rtx *operands;
  1668.      rtx insn;
  1669. {
  1670.  return output_sane_2 (operands, 0x000f, "FABSX");
  1671. }
  1672.  
  1673. static char *
  1674. output_229 (operands, insn)
  1675.      rtx *operands;
  1676.      rtx insn;
  1677. {
  1678.  
  1679. {
  1680.   if (REG_P (operands[1]) && ! DATA_REG_P (operands[1]))
  1681.     return "fabs%.x %1,%0";
  1682.   return "fabs%.d %1,%0";
  1683. }
  1684. }
  1685.  
  1686. static char *
  1687. output_230 (operands, insn)
  1688.      rtx *operands;
  1689.      rtx insn;
  1690. {
  1691.  return output_sane_2 (operands, 0x000f, "FABSX");
  1692. }
  1693.  
  1694. static char *
  1695. output_233 (operands, insn)
  1696.      rtx *operands;
  1697.      rtx insn;
  1698. {
  1699.  return output_sane_2 (operands, 0x000f, "FABSX");
  1700. }
  1701.  
  1702. static char *
  1703. output_237 (operands, insn)
  1704.      rtx *operands;
  1705.      rtx insn;
  1706. {
  1707.  
  1708. {
  1709.   if (TARGET_68020)
  1710.     return "move%.b %1,%0\n\textb%.l %0";
  1711.   return "move%.b %1,%0\n\text%.w %0\n\text%.l %0";
  1712. }
  1713. }
  1714.  
  1715. static char *
  1716. output_238 (operands, insn)
  1717.      rtx *operands;
  1718.      rtx insn;
  1719. {
  1720.  
  1721. {
  1722.   if (reg_mentioned_p (operands[0], operands[1]))
  1723.     return "move%.b %1,%0\n\tand%.l #$FF,%0";
  1724.   return "clr%.l %0\n\tmove%.b %1,%0";
  1725. }
  1726. }
  1727.  
  1728. static char *
  1729. output_239 (operands, insn)
  1730.      rtx *operands;
  1731.      rtx insn;
  1732. {
  1733.  cc_status.flags |= CC_REVERSED;
  1734.   return "cmp%.b %0,%1";
  1735.  
  1736. }
  1737.  
  1738. static char *
  1739. output_240 (operands, insn)
  1740.      rtx *operands;
  1741.      rtx insn;
  1742. {
  1743.  
  1744.   return "cmp%.b %1,%0";
  1745.  
  1746. }
  1747.  
  1748. static char *
  1749. output_241 (operands, insn)
  1750.      rtx *operands;
  1751.      rtx insn;
  1752. {
  1753.  cc_status.flags |= CC_REVERSED;
  1754.   return "cmp%.b %0,%1";
  1755.  
  1756. }
  1757.  
  1758. static char *
  1759. output_242 (operands, insn)
  1760.      rtx *operands;
  1761.      rtx insn;
  1762. {
  1763.  
  1764.   return "cmp%.b %1,%0";
  1765.  
  1766. }
  1767.  
  1768. static char *
  1769. output_261 (operands, insn)
  1770.      rtx *operands;
  1771.      rtx insn;
  1772. {
  1773.  
  1774. {
  1775.   if (REG_P (operands[0]))
  1776.     {
  1777.       if (INTVAL (operands[1]) + INTVAL (operands[2]) != 32)
  1778.         return "bfins %3,%0{%b2:%b1}";
  1779.     }
  1780.   else
  1781.     operands[0]
  1782.       = adj_offsettable_operand (operands[0], INTVAL (operands[2]) / 8);
  1783.  
  1784.   if (GET_CODE (operands[3]) == MEM)
  1785.     operands[3] = adj_offsettable_operand (operands[3],
  1786.                       (32 - INTVAL (operands[1])) / 8);
  1787.   if (INTVAL (operands[1]) == 8)
  1788.     return "move%.b %3,%0";
  1789.   return "move%.w %3,%0";
  1790. }
  1791. }
  1792.  
  1793. static char *
  1794. output_262 (operands, insn)
  1795.      rtx *operands;
  1796.      rtx insn;
  1797. {
  1798.  
  1799. {
  1800.   if (REG_P (operands[1]))
  1801.     {
  1802.       if (INTVAL (operands[2]) + INTVAL (operands[3]) != 32)
  1803.     return "bfextu %1{%b3:%b2},%0";
  1804.     }
  1805.   else
  1806.     operands[1]
  1807.       = adj_offsettable_operand (operands[1], INTVAL (operands[3]) / 8);
  1808.  
  1809.   output_asm_insn ("clr%.l %0", operands);
  1810.   if (GET_CODE (operands[0]) == MEM)
  1811.     operands[0] = adj_offsettable_operand (operands[0],
  1812.                       (32 - INTVAL (operands[1])) / 8);
  1813.   if (INTVAL (operands[2]) == 8)
  1814.     return "move%.b %1,%0";
  1815.   return "move%.w %1,%0";
  1816. }
  1817. }
  1818.  
  1819. static char *
  1820. output_263 (operands, insn)
  1821.      rtx *operands;
  1822.      rtx insn;
  1823. {
  1824.  
  1825. {
  1826.   if (REG_P (operands[1]))
  1827.     {
  1828.       if (INTVAL (operands[2]) + INTVAL (operands[3]) != 32)
  1829.     return "bfexts %1{%b3:%b2},%0";
  1830.     }
  1831.   else
  1832.     operands[1]
  1833.       = adj_offsettable_operand (operands[1], INTVAL (operands[3]) / 8);
  1834.  
  1835.   if (INTVAL (operands[2]) == 8)
  1836.     return "move%.b %1,%0\n\textb%.l %0";
  1837.   return "move%.w %1,%0\n\text%.l %0";
  1838. }
  1839. }
  1840.  
  1841. static char *
  1842. output_266 (operands, insn)
  1843.      rtx *operands;
  1844.      rtx insn;
  1845. {
  1846.  
  1847. {
  1848.   CC_STATUS_INIT;
  1849.   return "bfchg %0{%b2:%b1}";
  1850. }
  1851. }
  1852.  
  1853. static char *
  1854. output_267 (operands, insn)
  1855.      rtx *operands;
  1856.      rtx insn;
  1857. {
  1858.  
  1859. {
  1860.   CC_STATUS_INIT;
  1861.   return "bfclr %0{%b2:%b1}";
  1862. }
  1863. }
  1864.  
  1865. static char *
  1866. output_268 (operands, insn)
  1867.      rtx *operands;
  1868.      rtx insn;
  1869. {
  1870.  
  1871. {
  1872.   CC_STATUS_INIT;
  1873.   return "bfset %0{%b2:%b1}";
  1874. }
  1875. }
  1876.  
  1877. static char *
  1878. output_272 (operands, insn)
  1879.      rtx *operands;
  1880.      rtx insn;
  1881. {
  1882.  
  1883. {
  1884.   CC_STATUS_INIT;
  1885.   return "bfclr %0{%b2:%b1}";
  1886. }
  1887. }
  1888.  
  1889. static char *
  1890. output_273 (operands, insn)
  1891.      rtx *operands;
  1892.      rtx insn;
  1893. {
  1894.  
  1895. {
  1896.   CC_STATUS_INIT;
  1897.   return "bfset %0{%b2:%b1}";
  1898. }
  1899. }
  1900.  
  1901. static char *
  1902. output_274 (operands, insn)
  1903.      rtx *operands;
  1904.      rtx insn;
  1905. {
  1906.  
  1907. {
  1908. #if 0
  1909.   /* These special cases are now recognized by a specific pattern.  */
  1910.   if (GET_CODE (operands[1]) == CONST_INT && GET_CODE (operands[2]) == CONST_INT
  1911.       && INTVAL (operands[1]) == 16 && INTVAL (operands[2]) == 16)
  1912.     return "move%.w %3,%0";
  1913.   if (GET_CODE (operands[1]) == CONST_INT && GET_CODE (operands[2]) == CONST_INT
  1914.       && INTVAL (operands[1]) == 24 && INTVAL (operands[2]) == 8)
  1915.     return "move%.b %3,%0";
  1916. #endif
  1917.   return "bfins %3,%0{%b2:%b1}";
  1918. }
  1919. }
  1920.  
  1921. static char *
  1922. output_275 (operands, insn)
  1923.      rtx *operands;
  1924.      rtx insn;
  1925. {
  1926.  
  1927. {
  1928.   if (operands[1] == const1_rtx
  1929.       && GET_CODE (operands[2]) == CONST_INT)
  1930.     {    
  1931.       int width = GET_CODE (operands[0]) == REG ? 31 : 7;
  1932.       return output_btst (operands,
  1933.               gen_rtx (CONST_INT, VOIDmode,
  1934.                    width - INTVAL (operands[2])),
  1935.               operands[0],
  1936.               insn, 1000);
  1937.       /* Pass 1000 as SIGNPOS argument so that btst will
  1938.          not think we are testing the sign bit for an `and'
  1939.      and assume that nonzero implies a negative result.  */
  1940.     }
  1941.   if (INTVAL (operands[1]) != 32)
  1942.     cc_status.flags = CC_NOT_NEGATIVE;
  1943.   return "bftst %0{%b2:%b1}";
  1944. }
  1945. }
  1946.  
  1947. static char *
  1948. output_276 (operands, insn)
  1949.      rtx *operands;
  1950.      rtx insn;
  1951. {
  1952.  
  1953. {
  1954.   if (operands[1] == const1_rtx
  1955.       && GET_CODE (operands[2]) == CONST_INT)
  1956.     {    
  1957.       int width = GET_CODE (operands[0]) == REG ? 31 : 7;
  1958.       return output_btst (operands,
  1959.               gen_rtx (CONST_INT, VOIDmode,
  1960.                    width - INTVAL (operands[2])),
  1961.               operands[0],
  1962.               insn, 1000);
  1963.       /* Pass 1000 as SIGNPOS argument so that btst will
  1964.          not think we are testing the sign bit for an `and'
  1965.      and assume that nonzero implies a negative result.  */
  1966.     }
  1967.   if (INTVAL (operands[1]) != 32)
  1968.     cc_status.flags = CC_NOT_NEGATIVE;
  1969.   return "bftst %0{%b2:%b1}";
  1970. }
  1971. }
  1972.  
  1973. static char *
  1974. output_277 (operands, insn)
  1975.      rtx *operands;
  1976.      rtx insn;
  1977. {
  1978.  
  1979. {
  1980.   if (operands[1] == const1_rtx
  1981.       && GET_CODE (operands[2]) == CONST_INT)
  1982.     {    
  1983.       int width = GET_CODE (operands[0]) == REG ? 31 : 7;
  1984.       return output_btst (operands,
  1985.               gen_rtx (CONST_INT, VOIDmode,
  1986.                    width - INTVAL (operands[2])),
  1987.               operands[0],
  1988.               insn, 1000);
  1989.       /* Pass 1000 as SIGNPOS argument so that btst will
  1990.          not think we are testing the sign bit for an `and'
  1991.      and assume that nonzero implies a negative result.  */
  1992.     }
  1993.   if (INTVAL (operands[1]) != 32)
  1994.     cc_status.flags = CC_NOT_NEGATIVE;
  1995.   return "bftst %0{%b2:%b1}";
  1996. }
  1997. }
  1998.  
  1999. static char *
  2000. output_278 (operands, insn)
  2001.      rtx *operands;
  2002.      rtx insn;
  2003. {
  2004.  
  2005. {
  2006.   if (operands[1] == const1_rtx
  2007.       && GET_CODE (operands[2]) == CONST_INT)
  2008.     {    
  2009.       int width = GET_CODE (operands[0]) == REG ? 31 : 7;
  2010.       return output_btst (operands,
  2011.               gen_rtx (CONST_INT, VOIDmode,
  2012.                    width - INTVAL (operands[2])),
  2013.               operands[0],
  2014.               insn, 1000);
  2015.       /* Pass 1000 as SIGNPOS argument so that btst will
  2016.          not think we are testing the sign bit for an `and'
  2017.      and assume that nonzero implies a negative result.  */
  2018.     }
  2019.   if (INTVAL (operands[1]) != 32)
  2020.     cc_status.flags = CC_NOT_NEGATIVE;
  2021.   return "bftst %0{%b2:%b1}";
  2022. }
  2023. }
  2024.  
  2025. static char *
  2026. output_279 (operands, insn)
  2027.      rtx *operands;
  2028.      rtx insn;
  2029. {
  2030.  
  2031. {
  2032.   if (operands[1] == const1_rtx
  2033.       && GET_CODE (operands[2]) == CONST_INT)
  2034.     {    
  2035.       int width = GET_CODE (operands[0]) == REG ? 31 : 7;
  2036.       return output_btst (operands,
  2037.               gen_rtx (CONST_INT, VOIDmode,
  2038.                    width - INTVAL (operands[2])),
  2039.               operands[0],
  2040.               insn, 1000);
  2041.       /* Pass 1000 as SIGNPOS argument so that btst will
  2042.          not think we are testing the sign bit for an `and'
  2043.      and assume that nonzero implies a negative result.  */
  2044.     }
  2045.   if (INTVAL (operands[1]) != 32)
  2046.     cc_status.flags = CC_NOT_NEGATIVE;
  2047.   return "bftst %0{%b2:%b1}";
  2048. }
  2049. }
  2050.  
  2051. static char *
  2052. output_280 (operands, insn)
  2053.      rtx *operands;
  2054.      rtx insn;
  2055. {
  2056.  
  2057. {
  2058.   if (operands[1] == const1_rtx
  2059.       && GET_CODE (operands[2]) == CONST_INT)
  2060.     {    
  2061.       int width = GET_CODE (operands[0]) == REG ? 31 : 7;
  2062.       return output_btst (operands,
  2063.               gen_rtx (CONST_INT, VOIDmode,
  2064.                    width - INTVAL (operands[2])),
  2065.               operands[0],
  2066.               insn, 1000);
  2067.       /* Pass 1000 as SIGNPOS argument so that btst will
  2068.          not think we are testing the sign bit for an `and'
  2069.      and assume that nonzero implies a negative result.  */
  2070.     }
  2071.   if (INTVAL (operands[1]) != 32)
  2072.     cc_status.flags = CC_NOT_NEGATIVE;
  2073.   return "bftst %0{%b2:%b1}";
  2074. }
  2075. }
  2076.  
  2077. static char *
  2078. output_281 (operands, insn)
  2079.      rtx *operands;
  2080.      rtx insn;
  2081. {
  2082.  
  2083.   cc_status = cc_prev_status;
  2084.   OUTPUT_JUMP ("seq %0", "fseq %0", "seq %0");
  2085.  
  2086. }
  2087.  
  2088. static char *
  2089. output_282 (operands, insn)
  2090.      rtx *operands;
  2091.      rtx insn;
  2092. {
  2093.  
  2094.   cc_status = cc_prev_status;
  2095.   OUTPUT_JUMP ("sne %0", "fsne %0", "sne %0");
  2096.  
  2097. }
  2098.  
  2099. static char *
  2100. output_283 (operands, insn)
  2101.      rtx *operands;
  2102.      rtx insn;
  2103. {
  2104.  
  2105.   cc_status = cc_prev_status;
  2106.   OUTPUT_JUMP ("sgt %0", "fsgt %0", 0);
  2107.  
  2108. }
  2109.  
  2110. static char *
  2111. output_284 (operands, insn)
  2112.      rtx *operands;
  2113.      rtx insn;
  2114. {
  2115.  cc_status = cc_prev_status;
  2116.      return "shi %0"; 
  2117. }
  2118.  
  2119. static char *
  2120. output_285 (operands, insn)
  2121.      rtx *operands;
  2122.      rtx insn;
  2123. {
  2124.  cc_status = cc_prev_status;
  2125.      OUTPUT_JUMP ("slt %0", "fslt %0", "smi %0"); 
  2126. }
  2127.  
  2128. static char *
  2129. output_286 (operands, insn)
  2130.      rtx *operands;
  2131.      rtx insn;
  2132. {
  2133.  cc_status = cc_prev_status;
  2134.      return "scs %0"; 
  2135. }
  2136.  
  2137. static char *
  2138. output_287 (operands, insn)
  2139.      rtx *operands;
  2140.      rtx insn;
  2141. {
  2142.  cc_status = cc_prev_status;
  2143.      OUTPUT_JUMP ("sge %0", "fsge %0", "spl %0"); 
  2144. }
  2145.  
  2146. static char *
  2147. output_288 (operands, insn)
  2148.      rtx *operands;
  2149.      rtx insn;
  2150. {
  2151.  cc_status = cc_prev_status;
  2152.      return "scc %0"; 
  2153. }
  2154.  
  2155. static char *
  2156. output_289 (operands, insn)
  2157.      rtx *operands;
  2158.      rtx insn;
  2159. {
  2160.  
  2161.   cc_status = cc_prev_status;
  2162.   OUTPUT_JUMP ("sle %0", "fsle %0", 0);
  2163.  
  2164. }
  2165.  
  2166. static char *
  2167. output_290 (operands, insn)
  2168.      rtx *operands;
  2169.      rtx insn;
  2170. {
  2171.  cc_status = cc_prev_status;
  2172.      return "sls %0"; 
  2173. }
  2174.  
  2175. static char *
  2176. output_291 (operands, insn)
  2177.      rtx *operands;
  2178.      rtx insn;
  2179. {
  2180.  
  2181. {
  2182.   OUTPUT_JUMP ("beq %l0", "fbeq %l0", "beq %l0");
  2183. }
  2184. }
  2185.  
  2186. static char *
  2187. output_292 (operands, insn)
  2188.      rtx *operands;
  2189.      rtx insn;
  2190. {
  2191.  
  2192. {
  2193.   OUTPUT_JUMP ("bne %l0", "fbne %l0", "bne %l0");
  2194. }
  2195. }
  2196.  
  2197. static char *
  2198. output_293 (operands, insn)
  2199.      rtx *operands;
  2200.      rtx insn;
  2201. {
  2202.  
  2203.   OUTPUT_JUMP ("bgt %l0", "fbgt %l0", 0);
  2204.  
  2205. }
  2206.  
  2207. static char *
  2208. output_294 (operands, insn)
  2209.      rtx *operands;
  2210.      rtx insn;
  2211. {
  2212.  
  2213.   return "bhi %l0";
  2214.  
  2215. }
  2216.  
  2217. static char *
  2218. output_295 (operands, insn)
  2219.      rtx *operands;
  2220.      rtx insn;
  2221. {
  2222.  
  2223.   OUTPUT_JUMP ("blt %l0", "fblt %l0", "bmi %l0");
  2224.  
  2225. }
  2226.  
  2227. static char *
  2228. output_296 (operands, insn)
  2229.      rtx *operands;
  2230.      rtx insn;
  2231. {
  2232.  
  2233.   return "bcs %l0";
  2234.  
  2235. }
  2236.  
  2237. static char *
  2238. output_297 (operands, insn)
  2239.      rtx *operands;
  2240.      rtx insn;
  2241. {
  2242.  
  2243.   OUTPUT_JUMP ("bge %l0", "fbge %l0", "bpl %l0");
  2244.  
  2245. }
  2246.  
  2247. static char *
  2248. output_298 (operands, insn)
  2249.      rtx *operands;
  2250.      rtx insn;
  2251. {
  2252.  
  2253.   return "bcc %l0";
  2254.  
  2255. }
  2256.  
  2257. static char *
  2258. output_299 (operands, insn)
  2259.      rtx *operands;
  2260.      rtx insn;
  2261. {
  2262.  
  2263.   OUTPUT_JUMP ("ble %l0", "fble %l0", 0);
  2264.  
  2265. }
  2266.  
  2267. static char *
  2268. output_300 (operands, insn)
  2269.      rtx *operands;
  2270.      rtx insn;
  2271. {
  2272.  
  2273.   return "bls %l0";
  2274.  
  2275. }
  2276.  
  2277. static char *
  2278. output_301 (operands, insn)
  2279.      rtx *operands;
  2280.      rtx insn;
  2281. {
  2282.  
  2283. {
  2284.   OUTPUT_JUMP ("bne %l0", "fbne %l0", "bne %l0");
  2285. }
  2286. }
  2287.  
  2288. static char *
  2289. output_302 (operands, insn)
  2290.      rtx *operands;
  2291.      rtx insn;
  2292. {
  2293.  
  2294. {
  2295.   OUTPUT_JUMP ("beq %l0", "fbeq %l0", "beq %l0");
  2296. }
  2297. }
  2298.  
  2299. static char *
  2300. output_303 (operands, insn)
  2301.      rtx *operands;
  2302.      rtx insn;
  2303. {
  2304.  
  2305.   OUTPUT_JUMP ("ble %l0", "fbngt %l0", 0);
  2306.  
  2307. }
  2308.  
  2309. static char *
  2310. output_304 (operands, insn)
  2311.      rtx *operands;
  2312.      rtx insn;
  2313. {
  2314.  
  2315.   return "bls %l0";
  2316.  
  2317. }
  2318.  
  2319. static char *
  2320. output_305 (operands, insn)
  2321.      rtx *operands;
  2322.      rtx insn;
  2323. {
  2324.  
  2325.   OUTPUT_JUMP ("bge %l0", "fbnlt %l0", "bpl %l0");
  2326.  
  2327. }
  2328.  
  2329. static char *
  2330. output_306 (operands, insn)
  2331.      rtx *operands;
  2332.      rtx insn;
  2333. {
  2334.  
  2335.   return "bcc %l0";
  2336.  
  2337. }
  2338.  
  2339. static char *
  2340. output_307 (operands, insn)
  2341.      rtx *operands;
  2342.      rtx insn;
  2343. {
  2344.  
  2345.   OUTPUT_JUMP ("blt %l0", "fbnge %l0", "bmi %l0");
  2346.  
  2347. }
  2348.  
  2349. static char *
  2350. output_308 (operands, insn)
  2351.      rtx *operands;
  2352.      rtx insn;
  2353. {
  2354.  
  2355.   return "bcs %l0";
  2356.  
  2357. }
  2358.  
  2359. static char *
  2360. output_309 (operands, insn)
  2361.      rtx *operands;
  2362.      rtx insn;
  2363. {
  2364.  
  2365.   OUTPUT_JUMP ("bgt %l0", "fbnle %l0", 0);
  2366.  
  2367. }
  2368.  
  2369. static char *
  2370. output_310 (operands, insn)
  2371.      rtx *operands;
  2372.      rtx insn;
  2373. {
  2374.  
  2375.   return "bhi %l0";
  2376.  
  2377. }
  2378.  
  2379. static char *
  2380. output_314 (operands, insn)
  2381.      rtx *operands;
  2382.      rtx insn;
  2383. {
  2384.  
  2385.   return TARGET_GAS?"jmp @(%l1,%0:w)":"jmp %l1(%0.w)";
  2386.  
  2387. }
  2388.  
  2389. static char *
  2390. output_315 (operands, insn)
  2391.      rtx *operands;
  2392.      rtx insn;
  2393. {
  2394.  
  2395.   return "bra %l0";
  2396.  
  2397. }
  2398.  
  2399. static char *
  2400. output_316 (operands, insn)
  2401.      rtx *operands;
  2402.      rtx insn;
  2403. {
  2404.  
  2405. {
  2406.   if (DATA_REG_P (operands[0]))
  2407.     return "dbra %0,%l1";
  2408.   if (GET_CODE (operands[0]) == MEM)
  2409.     {
  2410.       return "subq%.w #1,%0\n\tbcc %l1";
  2411.     }
  2412.   return "subq%.w #1,%0\n\tcmp%.w #-1,%0\n\tbne %l1";
  2413. }
  2414. }
  2415.  
  2416. static char *
  2417. output_317 (operands, insn)
  2418.      rtx *operands;
  2419.      rtx insn;
  2420. {
  2421.  
  2422. {
  2423.   if (DATA_REG_P (operands[0]))
  2424.     return "dbra %0,%l1\n\tclr%.w %0\n\tsubq%.l #1,%0\n\tbcc %l1";
  2425.   if (GET_CODE (operands[0]) == MEM)
  2426.     return "subq%.l #1,%0\n\tbcc %l1";
  2427.   return "subq%.l #1,%0\n\tcmp%.l #-1,%0\n\tbne %l1";
  2428. }
  2429. }
  2430.  
  2431. static char *
  2432. output_318 (operands, insn)
  2433.      rtx *operands;
  2434.      rtx insn;
  2435. {
  2436.  
  2437. {
  2438.   if (DATA_REG_P (operands[0]))
  2439.     return "dbra %0,%l1\n\tclr%.w %0\n\tsubq%.l #1,%0\n\tbcc %l1";
  2440.   if (GET_CODE (operands[0]) == MEM)
  2441.     return "subq%.l #1,%0\n\tbcc %l1";
  2442.   return "subq%.l #1,%0\n\tcmp%.l #-1,%0\n\tbne %l1";
  2443. }
  2444. }
  2445.  
  2446. static char *
  2447. output_319 (operands, insn)
  2448.      rtx *operands;
  2449.      rtx insn;
  2450. {
  2451.  
  2452. {
  2453.   char *name = "?";
  2454.   if (GET_CODE(operands[0])!=REG)
  2455.         {
  2456.         rtx sym = XEXP (operands[0], 0);
  2457.         if (sym && (GET_CODE(sym) == SYMBOL_REF)) name = XSTR (sym, 0);
  2458.         }
  2459.   if (name[1] == ';')
  2460.     {
  2461.       operands[0] = gen_rtx (MEM, QImode,
  2462.                  gen_rtx (SYMBOL_REF, SImode, name+2));
  2463.       return TARGET_GAS?".word %0":"DC.W %0";
  2464.     }
  2465.   if (TARGET_FX30 && GET_CODE (XEXP (operands[0], 0)) == SYMBOL_REF)
  2466.     {
  2467.       return "DC.W $61ff ; bsr.l\n\tDC.L %0-m#start-*";
  2468.     }
  2469.   return "jsr %0";
  2470. }
  2471. }
  2472.  
  2473. static char *
  2474. output_320 (operands, insn)
  2475.      rtx *operands;
  2476.      rtx insn;
  2477. {
  2478.  
  2479. {
  2480.   char *name = "?";
  2481.   if (GET_CODE(operands[1])!=REG)
  2482.         {
  2483.         rtx sym = XEXP (operands[1], 0);
  2484.         if (sym && (GET_CODE(sym) == SYMBOL_REF)) name = XSTR (sym, 0);
  2485.         }
  2486.   if (name[1] == ';') {
  2487.     operands[1] = gen_rtx (MEM, QImode, gen_rtx (SYMBOL_REF, SImode, name+2));
  2488.     return TARGET_GAS?".word %1":"DC.W %1";
  2489.   }
  2490.   if (TARGET_FX30 && GET_CODE (XEXP (operands[1], 0)) == SYMBOL_REF)
  2491.     {
  2492.       return "DC.W $61ff ; bsr.l\n\tDC.L %1-m#start-*";
  2493.     }
  2494.   return "jsr %1";
  2495. }
  2496. }
  2497.  
  2498. static char *
  2499. output_324 (operands, insn)
  2500.      rtx *operands;
  2501.      rtx insn;
  2502. {
  2503.  
  2504. {
  2505.   rtx xoperands[2];
  2506.   xoperands[1] = gen_rtx (REG, SImode, REGNO (operands[1]) + 1);
  2507.   output_asm_insn ("move%.l %1,%@", xoperands);
  2508.   output_asm_insn ("move%.l %1,%-", operands);
  2509.   return "fmove%.d %+,%0";
  2510. }
  2511.  
  2512. }
  2513.  
  2514. char * const insn_template[] =
  2515.   {
  2516.     0,
  2517.     0,
  2518.     0,
  2519.     0,
  2520.     "tst%.b %0",
  2521.     0,
  2522.     0,
  2523.     0,
  2524.     0,
  2525.     0,
  2526.     0,
  2527.     0,
  2528.     0,
  2529.     0,
  2530.     0,
  2531.     0,
  2532.     0,
  2533.     0,
  2534.     0,
  2535.     0,
  2536.     0,
  2537.     0,
  2538.     0,
  2539.     0,
  2540.     0,
  2541.     0,
  2542.     0,
  2543.     0,
  2544.     0,
  2545.     0,
  2546.     0,
  2547.     0,
  2548.     0,
  2549.     0,
  2550.     0,
  2551.     0,
  2552.     0,
  2553.     0,
  2554.     0,
  2555.     0,
  2556.     0,
  2557.     0,
  2558.     0,
  2559.     0,
  2560.     0,
  2561.     0,
  2562.     "pea %a1",
  2563.     0,
  2564.     0,
  2565.     0,
  2566.     0,
  2567.     0,
  2568.     0,
  2569.     0,
  2570.     0,
  2571.     0,
  2572.     0,
  2573.     "ext%.w %0",
  2574.     "extb%.l %0",
  2575.     0,
  2576.     0,
  2577.     0,
  2578.     0,
  2579.     0,
  2580.     0,
  2581.     0,
  2582.     0,
  2583.     0,
  2584.     0,
  2585.     "fmove%.s %1,%0",
  2586.     0,
  2587.     0,
  2588.     "fmove%.s %1,%0",
  2589.     0,
  2590.     0,
  2591.     0,
  2592.     0,
  2593.     0,
  2594.     "fmove%.l %1,%0",
  2595.     0,
  2596.     0,
  2597.     "fmove%.l %1,%0",
  2598.     0,
  2599.     0,
  2600.     "fmove%.l %1,%0",
  2601.     0,
  2602.     "fmove%.w %1,%0",
  2603.     "fmove%.w %1,%0",
  2604.     "fmove%.w %1,%0",
  2605.     "fmove%.b %1,%0",
  2606.     "fmove%.b %1,%0",
  2607.     "fmove%.b %1,%0",
  2608.     0,
  2609.     0,
  2610.     0,
  2611.     0,
  2612.     0,
  2613.     0,
  2614.     0,
  2615.     0,
  2616.     "fintrz%.x %1,%0",
  2617.     "fmove%.b %1,%0",
  2618.     "fmove%.w %1,%0",
  2619.     "fmove%.l %1,%0",
  2620.     "fmove%.b %1,%0",
  2621.     "fmove%.w %1,%0",
  2622.     "fmove%.l %1,%0",
  2623.     "fmove%.b %1,%0",
  2624.     "fmove%.w %1,%0",
  2625.     0,
  2626.     0,
  2627.     "fmove%.l %1,%0",
  2628.     0,
  2629.     0,
  2630.     "fmove%.l %1,%0",
  2631.     0,
  2632.     "add%.w %2,%0",
  2633.     0,
  2634.     "add%.w %1,%0",
  2635.     0,
  2636.     "add%.b %1,%0",
  2637.     0,
  2638.     0,
  2639.     0,
  2640.     0,
  2641.     0,
  2642.     0,
  2643.     0,
  2644.     "fadd%.x %2,%0",
  2645.     0,
  2646.     0,
  2647.     "sub%.w %2,%0",
  2648.     "sub%.w %2,%0",
  2649.     "sub%.w %1,%0",
  2650.     "sub%.b %2,%0",
  2651.     "sub%.b %1,%0",
  2652.     0,
  2653.     0,
  2654.     0,
  2655.     0,
  2656.     0,
  2657.     0,
  2658.     0,
  2659.     "fsub%.x %2,%0",
  2660.     0,
  2661.     "muls%.w %2,%0",
  2662.     "muls%.w %2,%0",
  2663.     0,
  2664.     "muls%.l %2,%0",
  2665.     0,
  2666.     "mulu%.w %2,%0",
  2667.     "mulu%.w %2,%0",
  2668.     0,
  2669.     "mulu%.l %2,%0",
  2670.     0,
  2671.     0,
  2672.     0,
  2673.     0,
  2674.     0,
  2675.     0,
  2676.     0,
  2677.     0,
  2678.     "fmul%.x %2,%0",
  2679.     0,
  2680.     "ext%.l %0\n\tdivs%.w %2,%0",
  2681.     "divs%.w %2,%0",
  2682.     0,
  2683.     "divs%.l %2,%0",
  2684.     0,
  2685.     "and%.l #$FFFF,%0\n\tdivu%.w %2,%0",
  2686.     "divu%.w %2,%0",
  2687.     0,
  2688.     "divu%.l %2,%0",
  2689.     0,
  2690.     0,
  2691.     0,
  2692.     0,
  2693.     0,
  2694.     0,
  2695.     0,
  2696.     0,
  2697.     "fdiv%.x %2,%0",
  2698.     0,
  2699.     0,
  2700.     0,
  2701.     0,
  2702.     0,
  2703.     "tdivs%.l %2,%3:%0",
  2704.     "tdivu%.l %2,%3:%0",
  2705.     0,
  2706.     "and%.w %2,%0",
  2707.     "and%.b %2,%0",
  2708.     "and%.w %1,%0",
  2709.     "and%.b %1,%0",
  2710.     0,
  2711.     "or%.w %2,%0",
  2712.     "or%.b %2,%0",
  2713.     0,
  2714.     "eor%.w %2,%0",
  2715.     "eor%.b %2,%0",
  2716.     "neg%.l %0",
  2717.     "neg%.w %0",
  2718.     "neg%.b %0",
  2719.     0,
  2720.     0,
  2721.     0,
  2722.     0,
  2723.     0,
  2724.     0,
  2725.     0,
  2726.     "fneg%.x %1,%0",
  2727.     0,
  2728.     "fsin%.x %1,%0",
  2729.     "fcos%.x %1,%0",
  2730.     "ftan%.x %1,%0",
  2731.     "fasin%.x %1,%0",
  2732.     "facos%.x %1,%0",
  2733.     "fatan%.x %1,%0",
  2734.     "fsinh%.x %1,%0",
  2735.     "fcosh%.x %1,%0",
  2736.     "ftanh%.x %1,%0",
  2737.     "fetox%.x %1,%0",
  2738.     "flogn%.x %1,%0",
  2739.     "flog10%.x %1,%0",
  2740.     "fsqrt%.x %1,%0",
  2741.     0,
  2742.     0,
  2743.     0,
  2744.     0,
  2745.     0,
  2746.     0,
  2747.     0,
  2748.     "fabs%.x %1,%0",
  2749.     0,
  2750.     "not%.l %0",
  2751.     "not%.w %0",
  2752.     "not%.b %0",
  2753.     0,
  2754.     0,
  2755.     0,
  2756.     0,
  2757.     0,
  2758.     0,
  2759.     "asl%.l %2,%0",
  2760.     "asl%.w %2,%0",
  2761.     "asl%.b %2,%0",
  2762.     "asr%.l %2,%0",
  2763.     "asr%.w %2,%0",
  2764.     "asr%.b %2,%0",
  2765.     "lsl%.l %2,%0",
  2766.     "lsl%.w %2,%0",
  2767.     "lsl%.b %2,%0",
  2768.     "lsr%.l %2,%0",
  2769.     "lsr%.w %2,%0",
  2770.     "lsr%.b %2,%0",
  2771.     "rol%.l %2,%0",
  2772.     "rol%.w %2,%0",
  2773.     "rol%.b %2,%0",
  2774.     "ror%.l %2,%0",
  2775.     "ror%.w %2,%0",
  2776.     "ror%.b %2,%0",
  2777.     0,
  2778.     0,
  2779.     0,
  2780.     "bfexts %1{%b3:%b2},%0",
  2781.     "bfextu %1{%b3:%b2},%0",
  2782.     0,
  2783.     0,
  2784.     0,
  2785.     "bfins %3,%0{%b2:%b1}",
  2786.     "bfexts %1{%b3:%b2},%0",
  2787.     "bfextu %1{%b3:%b2},%0",
  2788.     0,
  2789.     0,
  2790.     0,
  2791.     0,
  2792.     0,
  2793.     0,
  2794.     0,
  2795.     0,
  2796.     0,
  2797.     0,
  2798.     0,
  2799.     0,
  2800.     0,
  2801.     0,
  2802.     0,
  2803.     0,
  2804.     0,
  2805.     0,
  2806.     0,
  2807.     0,
  2808.     0,
  2809.     0,
  2810.     0,
  2811.     0,
  2812.     0,
  2813.     0,
  2814.     0,
  2815.     0,
  2816.     0,
  2817.     0,
  2818.     0,
  2819.     0,
  2820.     0,
  2821.     0,
  2822.     0,
  2823.     0,
  2824.     0,
  2825.     0,
  2826.     0,
  2827.     0,
  2828.     0,
  2829.     0,
  2830.     0,
  2831.     0,
  2832.     0,
  2833.     0,
  2834.     0,
  2835.     0,
  2836.     0,
  2837.     "ret 0",
  2838.     "nop",
  2839.     "lea %a1,%0",
  2840.     0,
  2841.   };
  2842.  
  2843. char *(*const insn_outfun[])() =
  2844.   {
  2845.     output_0,
  2846.     output_1,
  2847.     output_2,
  2848.     output_3,
  2849.     0,
  2850.     0,
  2851.     output_6,
  2852.     output_7,
  2853.     0,
  2854.     output_9,
  2855.     output_10,
  2856.     0,
  2857.     output_12,
  2858.     output_13,
  2859.     output_14,
  2860.     output_15,
  2861.     output_16,
  2862.     0,
  2863.     output_18,
  2864.     output_19,
  2865.     0,
  2866.     output_21,
  2867.     output_22,
  2868.     0,
  2869.     output_24,
  2870.     output_25,
  2871.     output_26,
  2872.     output_27,
  2873.     output_28,
  2874.     output_29,
  2875.     output_30,
  2876.     output_31,
  2877.     output_32,
  2878.     output_33,
  2879.     output_34,
  2880.     output_35,
  2881.     output_36,
  2882.     output_37,
  2883.     output_38,
  2884.     output_39,
  2885.     output_40,
  2886.     output_41,
  2887.     output_42,
  2888.     output_43,
  2889.     output_44,
  2890.     output_45,
  2891.     0,
  2892.     output_47,
  2893.     output_48,
  2894.     output_49,
  2895.     0,
  2896.     0,
  2897.     0,
  2898.     output_53,
  2899.     output_54,
  2900.     output_55,
  2901.     output_56,
  2902.     0,
  2903.     0,
  2904.     0,
  2905.     output_60,
  2906.     output_61,
  2907.     0,
  2908.     output_63,
  2909.     output_64,
  2910.     0,
  2911.     output_66,
  2912.     output_67,
  2913.     0,
  2914.     0,
  2915.     output_70,
  2916.     0,
  2917.     0,
  2918.     output_73,
  2919.     0,
  2920.     output_75,
  2921.     output_76,
  2922.     0,
  2923.     0,
  2924.     output_79,
  2925.     0,
  2926.     0,
  2927.     output_82,
  2928.     0,
  2929.     0,
  2930.     output_85,
  2931.     0,
  2932.     0,
  2933.     0,
  2934.     0,
  2935.     0,
  2936.     0,
  2937.     0,
  2938.     output_93,
  2939.     output_94,
  2940.     0,
  2941.     output_96,
  2942.     output_97,
  2943.     0,
  2944.     output_99,
  2945.     0,
  2946.     0,
  2947.     0,
  2948.     0,
  2949.     0,
  2950.     0,
  2951.     0,
  2952.     0,
  2953.     0,
  2954.     0,
  2955.     output_110,
  2956.     0,
  2957.     0,
  2958.     output_113,
  2959.     0,
  2960.     output_115,
  2961.     0,
  2962.     output_117,
  2963.     0,
  2964.     output_119,
  2965.     0,
  2966.     0,
  2967.     output_122,
  2968.     output_123,
  2969.     0,
  2970.     output_125,
  2971.     output_126,
  2972.     0,
  2973.     0,
  2974.     output_129,
  2975.     output_130,
  2976.     0,
  2977.     0,
  2978.     0,
  2979.     0,
  2980.     0,
  2981.     0,
  2982.     output_137,
  2983.     output_138,
  2984.     0,
  2985.     output_140,
  2986.     output_141,
  2987.     0,
  2988.     0,
  2989.     output_144,
  2990.     0,
  2991.     0,
  2992.     0,
  2993.     0,
  2994.     output_149,
  2995.     0,
  2996.     0,
  2997.     0,
  2998.     0,
  2999.     output_154,
  3000.     0,
  3001.     output_156,
  3002.     output_157,
  3003.     0,
  3004.     output_159,
  3005.     output_160,
  3006.     0,
  3007.     0,
  3008.     output_163,
  3009.     0,
  3010.     0,
  3011.     0,
  3012.     0,
  3013.     output_168,
  3014.     0,
  3015.     0,
  3016.     0,
  3017.     0,
  3018.     output_173,
  3019.     0,
  3020.     output_175,
  3021.     output_176,
  3022.     0,
  3023.     output_178,
  3024.     output_179,
  3025.     0,
  3026.     0,
  3027.     output_182,
  3028.     output_183,
  3029.     output_184,
  3030.     output_185,
  3031.     output_186,
  3032.     0,
  3033.     0,
  3034.     output_189,
  3035.     0,
  3036.     0,
  3037.     0,
  3038.     0,
  3039.     output_194,
  3040.     0,
  3041.     0,
  3042.     output_197,
  3043.     0,
  3044.     0,
  3045.     0,
  3046.     0,
  3047.     0,
  3048.     0,
  3049.     output_204,
  3050.     output_205,
  3051.     0,
  3052.     output_207,
  3053.     output_208,
  3054.     0,
  3055.     0,
  3056.     output_211,
  3057.     0,
  3058.     0,
  3059.     0,
  3060.     0,
  3061.     0,
  3062.     0,
  3063.     0,
  3064.     0,
  3065.     0,
  3066.     0,
  3067.     0,
  3068.     0,
  3069.     0,
  3070.     0,
  3071.     output_226,
  3072.     output_227,
  3073.     0,
  3074.     output_229,
  3075.     output_230,
  3076.     0,
  3077.     0,
  3078.     output_233,
  3079.     0,
  3080.     0,
  3081.     0,
  3082.     output_237,
  3083.     output_238,
  3084.     output_239,
  3085.     output_240,
  3086.     output_241,
  3087.     output_242,
  3088.     0,
  3089.     0,
  3090.     0,
  3091.     0,
  3092.     0,
  3093.     0,
  3094.     0,
  3095.     0,
  3096.     0,
  3097.     0,
  3098.     0,
  3099.     0,
  3100.     0,
  3101.     0,
  3102.     0,
  3103.     0,
  3104.     0,
  3105.     0,
  3106.     output_261,
  3107.     output_262,
  3108.     output_263,
  3109.     0,
  3110.     0,
  3111.     output_266,
  3112.     output_267,
  3113.     output_268,
  3114.     0,
  3115.     0,
  3116.     0,
  3117.     output_272,
  3118.     output_273,
  3119.     output_274,
  3120.     output_275,
  3121.     output_276,
  3122.     output_277,
  3123.     output_278,
  3124.     output_279,
  3125.     output_280,
  3126.     output_281,
  3127.     output_282,
  3128.     output_283,
  3129.     output_284,
  3130.     output_285,
  3131.     output_286,
  3132.     output_287,
  3133.     output_288,
  3134.     output_289,
  3135.     output_290,
  3136.     output_291,
  3137.     output_292,
  3138.     output_293,
  3139.     output_294,
  3140.     output_295,
  3141.     output_296,
  3142.     output_297,
  3143.     output_298,
  3144.     output_299,
  3145.     output_300,
  3146.     output_301,
  3147.     output_302,
  3148.     output_303,
  3149.     output_304,
  3150.     output_305,
  3151.     output_306,
  3152.     output_307,
  3153.     output_308,
  3154.     output_309,
  3155.     output_310,
  3156.     0,
  3157.     0,
  3158.     0,
  3159.     output_314,
  3160.     output_315,
  3161.     output_316,
  3162.     output_317,
  3163.     output_318,
  3164.     output_319,
  3165.     output_320,
  3166.     0,
  3167.     0,
  3168.     0,
  3169.     output_324,
  3170.   };
  3171.  
  3172. rtx (*const insn_gen_function[]) () =
  3173.   {
  3174.     0,
  3175.     0,
  3176.     gen_tstsi,
  3177.     gen_tsthi,
  3178.     gen_tstqi,
  3179.     gen_tstsf,
  3180.     0,
  3181.     0,
  3182.     gen_tstdf,
  3183.     0,
  3184.     0,
  3185.     gen_tstxf,
  3186.     0,
  3187.     0,
  3188.     gen_cmpsi,
  3189.     gen_cmphi,
  3190.     gen_cmpqi,
  3191.     gen_cmpsf,
  3192.     0,
  3193.     0,
  3194.     gen_cmpdf,
  3195.     0,
  3196.     0,
  3197.     gen_cmpxf,
  3198.     0,
  3199.     0,
  3200.     0,
  3201.     0,
  3202.     0,
  3203.     0,
  3204.     0,
  3205.     0,
  3206.     0,
  3207.     0,
  3208.     0,
  3209.     0,
  3210.     0,
  3211.     gen_movsi,
  3212.     gen_movhi,
  3213.     gen_movstricthi,
  3214.     gen_movqi,
  3215.     gen_movstrictqi,
  3216.     gen_movsf,
  3217.     gen_movdf,
  3218.     gen_movxf,
  3219.     gen_movdi,
  3220.     gen_pushasi,
  3221.     gen_truncsiqi2,
  3222.     gen_trunchiqi2,
  3223.     gen_truncsihi2,
  3224.     gen_zero_extendhisi2,
  3225.     gen_zero_extendqihi2,
  3226.     gen_zero_extendqisi2,
  3227.     0,
  3228.     0,
  3229.     0,
  3230.     gen_extendhisi2,
  3231.     gen_extendqihi2,
  3232.     gen_extendqisi2,
  3233.     gen_extendsfdf2,
  3234.     0,
  3235.     0,
  3236.     gen_extendsfxf2,
  3237.     0,
  3238.     0,
  3239.     gen_extenddfxf2,
  3240.     0,
  3241.     0,
  3242.     gen_truncdfsf2,
  3243.     0,
  3244.     0,
  3245.     gen_truncxfsf2,
  3246.     0,
  3247.     0,
  3248.     gen_truncxfdf2,
  3249.     0,
  3250.     0,
  3251.     gen_floatsisf2,
  3252.     0,
  3253.     0,
  3254.     gen_floatsidf2,
  3255.     0,
  3256.     0,
  3257.     gen_floatsixf2,
  3258.     0,
  3259.     0,
  3260.     gen_floathisf2,
  3261.     gen_floathidf2,
  3262.     gen_floathixf2,
  3263.     gen_floatqisf2,
  3264.     gen_floatqidf2,
  3265.     gen_floatqixf2,
  3266.     gen_ftruncsf2,
  3267.     0,
  3268.     0,
  3269.     gen_ftruncdf2,
  3270.     0,
  3271.     0,
  3272.     gen_ftruncxf2,
  3273.     0,
  3274.     0,
  3275.     gen_fixsfqi2,
  3276.     gen_fixsfhi2,
  3277.     gen_fixsfsi2,
  3278.     gen_fixdfqi2,
  3279.     gen_fixdfhi2,
  3280.     gen_fixdfsi2,
  3281.     gen_fixxfqi2,
  3282.     gen_fixxfhi2,
  3283.     gen_fixxfsi2,
  3284.     0,
  3285.     0,
  3286.     gen_fixunsxfsi2,
  3287.     0,
  3288.     0,
  3289.     gen_addsi3,
  3290.     0,
  3291.     gen_addhi3,
  3292.     0,
  3293.     gen_addqi3,
  3294.     0,
  3295.     gen_addsf3,
  3296.     0,
  3297.     0,
  3298.     gen_adddf3,
  3299.     0,
  3300.     0,
  3301.     gen_addxf3,
  3302.     0,
  3303.     0,
  3304.     gen_subsi3,
  3305.     0,
  3306.     gen_subhi3,
  3307.     0,
  3308.     gen_subqi3,
  3309.     0,
  3310.     gen_subsf3,
  3311.     0,
  3312.     0,
  3313.     gen_subdf3,
  3314.     0,
  3315.     0,
  3316.     gen_subxf3,
  3317.     0,
  3318.     0,
  3319.     gen_mulhi3,
  3320.     gen_mulhisi3,
  3321.     gen_mulsi3,
  3322.     0,
  3323.     0,
  3324.     gen_umulhi3,
  3325.     gen_umulhisi3,
  3326.     gen_umulsi3,
  3327.     0,
  3328.     0,
  3329.     gen_mulsf3,
  3330.     0,
  3331.     0,
  3332.     gen_muldf3,
  3333.     0,
  3334.     0,
  3335.     gen_mulxf3,
  3336.     0,
  3337.     0,
  3338.     gen_divhi3,
  3339.     gen_divhisi3,
  3340.     gen_divsi3,
  3341.     0,
  3342.     0,
  3343.     gen_udivhi3,
  3344.     gen_udivhisi3,
  3345.     gen_udivsi3,
  3346.     0,
  3347.     0,
  3348.     gen_divsf3,
  3349.     0,
  3350.     0,
  3351.     gen_divdf3,
  3352.     0,
  3353.     0,
  3354.     gen_divxf3,
  3355.     0,
  3356.     0,
  3357.     gen_modhi3,
  3358.     gen_modhisi3,
  3359.     gen_umodhi3,
  3360.     gen_umodhisi3,
  3361.     gen_divmodsi4,
  3362.     gen_udivmodsi4,
  3363.     gen_andsi3,
  3364.     gen_andhi3,
  3365.     gen_andqi3,
  3366.     0,
  3367.     0,
  3368.     gen_iorsi3,
  3369.     gen_iorhi3,
  3370.     gen_iorqi3,
  3371.     gen_xorsi3,
  3372.     gen_xorhi3,
  3373.     gen_xorqi3,
  3374.     gen_negsi2,
  3375.     gen_neghi2,
  3376.     gen_negqi2,
  3377.     gen_negsf2,
  3378.     0,
  3379.     0,
  3380.     gen_negdf2,
  3381.     0,
  3382.     0,
  3383.     gen_negxf2,
  3384.     0,
  3385.     0,
  3386.     gen_sinxf2,
  3387.     gen_cosxf2,
  3388.     gen_tanxf2,
  3389.     gen_asinxf2,
  3390.     gen_acosxf2,
  3391.     gen_atanxf2,
  3392.     gen_sinhxf2,
  3393.     gen_coshxf2,
  3394.     gen_tanhxf2,
  3395.     gen_expxf2,
  3396.     gen_logxf2,
  3397.     gen_log10xf2,
  3398.     gen_sqrtxf2,
  3399.     gen_abssf2,
  3400.     0,
  3401.     0,
  3402.     gen_absdf2,
  3403.     0,
  3404.     0,
  3405.     gen_absxf2,
  3406.     0,
  3407.     0,
  3408.     gen_one_cmplsi2,
  3409.     gen_one_cmplhi2,
  3410.     gen_one_cmplqi2,
  3411.     0,
  3412.     0,
  3413.     0,
  3414.     0,
  3415.     0,
  3416.     0,
  3417.     gen_ashlsi3,
  3418.     gen_ashlhi3,
  3419.     gen_ashlqi3,
  3420.     gen_ashrsi3,
  3421.     gen_ashrhi3,
  3422.     gen_ashrqi3,
  3423.     gen_lshlsi3,
  3424.     gen_lshlhi3,
  3425.     gen_lshlqi3,
  3426.     gen_lshrsi3,
  3427.     gen_lshrhi3,
  3428.     gen_lshrqi3,
  3429.     gen_rotlsi3,
  3430.     gen_rotlhi3,
  3431.     gen_rotlqi3,
  3432.     gen_rotrsi3,
  3433.     gen_rotrhi3,
  3434.     gen_rotrqi3,
  3435.     0,
  3436.     0,
  3437.     0,
  3438.     gen_extv,
  3439.     gen_extzv,
  3440.     0,
  3441.     0,
  3442.     0,
  3443.     gen_insv,
  3444.     0,
  3445.     0,
  3446.     0,
  3447.     0,
  3448.     0,
  3449.     0,
  3450.     0,
  3451.     0,
  3452.     0,
  3453.     0,
  3454.     0,
  3455.     gen_seq,
  3456.     gen_sne,
  3457.     gen_sgt,
  3458.     gen_sgtu,
  3459.     gen_slt,
  3460.     gen_sltu,
  3461.     gen_sge,
  3462.     gen_sgeu,
  3463.     gen_sle,
  3464.     gen_sleu,
  3465.     gen_beq,
  3466.     gen_bne,
  3467.     gen_bgt,
  3468.     gen_bgtu,
  3469.     gen_blt,
  3470.     gen_bltu,
  3471.     gen_bge,
  3472.     gen_bgeu,
  3473.     gen_ble,
  3474.     gen_bleu,
  3475.     0,
  3476.     0,
  3477.     0,
  3478.     0,
  3479.     0,
  3480.     0,
  3481.     0,
  3482.     0,
  3483.     0,
  3484.     0,
  3485.     gen_casesi_1,
  3486.     gen_casesi_2,
  3487.     gen_casesi,
  3488.     0,
  3489.     gen_jump,
  3490.     0,
  3491.     0,
  3492.     0,
  3493.     gen_call,
  3494.     gen_call_value,
  3495.     gen_return,
  3496.     gen_nop,
  3497.     0,
  3498.     0,
  3499.   };
  3500.  
  3501. const char insn_n_operands[] =
  3502.   {
  3503.     2,
  3504.     2,
  3505.     1,
  3506.     1,
  3507.     1,
  3508.     1,
  3509.     1,
  3510.     1,
  3511.     1,
  3512.     1,
  3513.     1,
  3514.     1,
  3515.     1,
  3516.     1,
  3517.     2,
  3518.     2,
  3519.     2,
  3520.     2,
  3521.     2,
  3522.     2,
  3523.     2,
  3524.     2,
  3525.     2,
  3526.     2,
  3527.     2,
  3528.     2,
  3529.     2,
  3530.     2,
  3531.     2,
  3532.     2,
  3533.     2,
  3534.     2,
  3535.     2,
  3536.     1,
  3537.     2,
  3538.     2,
  3539.     1,
  3540.     2,
  3541.     2,
  3542.     2,
  3543.     2,
  3544.     2,
  3545.     2,
  3546.     2,
  3547.     2,
  3548.     2,
  3549.     2,
  3550.     2,
  3551.     2,
  3552.     2,
  3553.     2,
  3554.     2,
  3555.     2,
  3556.     2,
  3557.     2,
  3558.     2,
  3559.     2,
  3560.     2,
  3561.     2,
  3562.     2,
  3563.     2,
  3564.     2,
  3565.     2,
  3566.     2,
  3567.     2,
  3568.     2,
  3569.     2,
  3570.     2,
  3571.     2,
  3572.     2,
  3573.     2,
  3574.     2,
  3575.     2,
  3576.     2,
  3577.     2,
  3578.     2,
  3579.     2,
  3580.     2,
  3581.     2,
  3582.     2,
  3583.     2,
  3584.     2,
  3585.     2,
  3586.     2,
  3587.     2,
  3588.     2,
  3589.     2,
  3590.     2,
  3591.     2,
  3592.     2,
  3593.     2,
  3594.     2,
  3595.     2,
  3596.     2,
  3597.     2,
  3598.     2,
  3599.     2,
  3600.     2,
  3601.     2,
  3602.     2,
  3603.     2,
  3604.     2,
  3605.     2,
  3606.     2,
  3607.     2,
  3608.     2,
  3609.     2,
  3610.     2,
  3611.     2,
  3612.     2,
  3613.     2,
  3614.     2,
  3615.     2,
  3616.     2,
  3617.     2,
  3618.     3,
  3619.     3,
  3620.     3,
  3621.     2,
  3622.     3,
  3623.     2,
  3624.     3,
  3625.     3,
  3626.     3,
  3627.     3,
  3628.     3,
  3629.     3,
  3630.     3,
  3631.     3,
  3632.     3,
  3633.     3,
  3634.     3,
  3635.     3,
  3636.     2,
  3637.     3,
  3638.     2,
  3639.     3,
  3640.     3,
  3641.     3,
  3642.     3,
  3643.     3,
  3644.     3,
  3645.     3,
  3646.     3,
  3647.     3,
  3648.     3,
  3649.     3,
  3650.     3,
  3651.     3,
  3652.     3,
  3653.     3,
  3654.     3,
  3655.     3,
  3656.     3,
  3657.     3,
  3658.     3,
  3659.     3,
  3660.     3,
  3661.     3,
  3662.     3,
  3663.     3,
  3664.     3,
  3665.     3,
  3666.     3,
  3667.     3,
  3668.     3,
  3669.     3,
  3670.     3,
  3671.     3,
  3672.     3,
  3673.     3,
  3674.     3,
  3675.     3,
  3676.     3,
  3677.     3,
  3678.     3,
  3679.     3,
  3680.     3,
  3681.     3,
  3682.     3,
  3683.     3,
  3684.     3,
  3685.     3,
  3686.     3,
  3687.     3,
  3688.     3,
  3689.     3,
  3690.     4,
  3691.     4,
  3692.     3,
  3693.     3,
  3694.     3,
  3695.     3,
  3696.     3,
  3697.     3,
  3698.     3,
  3699.     3,
  3700.     3,
  3701.     3,
  3702.     3,
  3703.     2,
  3704.     2,
  3705.     2,
  3706.     2,
  3707.     2,
  3708.     2,
  3709.     2,
  3710.     2,
  3711.     2,
  3712.     2,
  3713.     2,
  3714.     2,
  3715.     2,
  3716.     2,
  3717.     2,
  3718.     2,
  3719.     2,
  3720.     2,
  3721.     2,
  3722.     2,
  3723.     2,
  3724.     2,
  3725.     2,
  3726.     2,
  3727.     2,
  3728.     2,
  3729.     2,
  3730.     2,
  3731.     2,
  3732.     2,
  3733.     2,
  3734.     2,
  3735.     2,
  3736.     2,
  3737.     2,
  3738.     2,
  3739.     2,
  3740.     2,
  3741.     2,
  3742.     2,
  3743.     2,
  3744.     2,
  3745.     2,
  3746.     3,
  3747.     3,
  3748.     3,
  3749.     3,
  3750.     3,
  3751.     3,
  3752.     3,
  3753.     3,
  3754.     3,
  3755.     3,
  3756.     3,
  3757.     3,
  3758.     3,
  3759.     3,
  3760.     3,
  3761.     3,
  3762.     3,
  3763.     3,
  3764.     4,
  3765.     4,
  3766.     4,
  3767.     4,
  3768.     4,
  3769.     4,
  3770.     3,
  3771.     3,
  3772.     4,
  3773.     4,
  3774.     4,
  3775.     3,
  3776.     3,
  3777.     4,
  3778.     3,
  3779.     3,
  3780.     3,
  3781.     3,
  3782.     3,
  3783.     3,
  3784.     1,
  3785.     1,
  3786.     1,
  3787.     1,
  3788.     1,
  3789.     1,
  3790.     1,
  3791.     1,
  3792.     1,
  3793.     1,
  3794.     0,
  3795.     0,
  3796.     0,
  3797.     0,
  3798.     0,
  3799.     0,
  3800.     0,
  3801.     0,
  3802.     0,
  3803.     0,
  3804.     0,
  3805.     0,
  3806.     0,
  3807.     0,
  3808.     0,
  3809.     0,
  3810.     0,
  3811.     0,
  3812.     0,
  3813.     0,
  3814.     4,
  3815.     2,
  3816.     5,
  3817.     1,
  3818.     0,
  3819.     1,
  3820.     1,
  3821.     1,
  3822.     2,
  3823.     3,
  3824.     0,
  3825.     0,
  3826.     2,
  3827.     2,
  3828.   };
  3829.  
  3830. const char insn_n_dups[] =
  3831.   {
  3832.     0,
  3833.     0,
  3834.     0,
  3835.     0,
  3836.     0,
  3837.     0,
  3838.     0,
  3839.     0,
  3840.     0,
  3841.     0,
  3842.     0,
  3843.     0,
  3844.     0,
  3845.     0,
  3846.     0,
  3847.     0,
  3848.     0,
  3849.     0,
  3850.     0,
  3851.     0,
  3852.     0,
  3853.     0,
  3854.     0,
  3855.     0,
  3856.     0,
  3857.     0,
  3858.     0,
  3859.     0,
  3860.     0,
  3861.     0,
  3862.     0,
  3863.     0,
  3864.     0,
  3865.     0,
  3866.     0,
  3867.     0,
  3868.     0,
  3869.     0,
  3870.     0,
  3871.     0,
  3872.     0,
  3873.     0,
  3874.     0,
  3875.     0,
  3876.     0,
  3877.     0,
  3878.     0,
  3879.     0,
  3880.     0,
  3881.     0,
  3882.     0,
  3883.     0,
  3884.     0,
  3885.     0,
  3886.     0,
  3887.     0,
  3888.     0,
  3889.     0,
  3890.     0,
  3891.     0,
  3892.     0,
  3893.     0,
  3894.     0,
  3895.     0,
  3896.     0,
  3897.     0,
  3898.     0,
  3899.     0,
  3900.     0,
  3901.     0,
  3902.     0,
  3903.     0,
  3904.     0,
  3905.     0,
  3906.     0,
  3907.     0,
  3908.     0,
  3909.     0,
  3910.     0,
  3911.     0,
  3912.     0,
  3913.     0,
  3914.     0,
  3915.     0,
  3916.     0,
  3917.     0,
  3918.     0,
  3919.     0,
  3920.     0,
  3921.     0,
  3922.     0,
  3923.     0,
  3924.     0,
  3925.     0,
  3926.     0,
  3927.     0,
  3928.     0,
  3929.     0,
  3930.     0,
  3931.     0,
  3932.     0,
  3933.     0,
  3934.     0,
  3935.     0,
  3936.     0,
  3937.     0,
  3938.     0,
  3939.     0,
  3940.     0,
  3941.     0,
  3942.     0,
  3943.     0,
  3944.     0,
  3945.     0,
  3946.     0,
  3947.     0,
  3948.     0,
  3949.     0,
  3950.     1,
  3951.     0,
  3952.     1,
  3953.     0,
  3954.     0,
  3955.     0,
  3956.     0,
  3957.     0,
  3958.     0,
  3959.     0,
  3960.     0,
  3961.     0,
  3962.     0,
  3963.     0,
  3964.     0,
  3965.     1,
  3966.     0,
  3967.     1,
  3968.     0,
  3969.     0,
  3970.     0,
  3971.     0,
  3972.     0,
  3973.     0,
  3974.     0,
  3975.     0,
  3976.     0,
  3977.     0,
  3978.     0,
  3979.     0,
  3980.     0,
  3981.     0,
  3982.     0,
  3983.     0,
  3984.     0,
  3985.     0,
  3986.     0,
  3987.     0,
  3988.     0,
  3989.     0,
  3990.     0,
  3991.     0,
  3992.     0,
  3993.     0,
  3994.     0,
  3995.     0,
  3996.     0,
  3997.     0,
  3998.     0,
  3999.     0,
  4000.     0,
  4001.     0,
  4002.     0,
  4003.     0,
  4004.     0,
  4005.     0,
  4006.     0,
  4007.     0,
  4008.     0,
  4009.     0,
  4010.     0,
  4011.     0,
  4012.     0,
  4013.     0,
  4014.     0,
  4015.     0,
  4016.     0,
  4017.     0,
  4018.     0,
  4019.     2,
  4020.     2,
  4021.     0,
  4022.     0,
  4023.     0,
  4024.     0,
  4025.     0,
  4026.     0,
  4027.     0,
  4028.     0,
  4029.     0,
  4030.     0,
  4031.     0,
  4032.     0,
  4033.     0,
  4034.     0,
  4035.     0,
  4036.     0,
  4037.     0,
  4038.     0,
  4039.     0,
  4040.     0,
  4041.     0,
  4042.     0,
  4043.     0,
  4044.     0,
  4045.     0,
  4046.     0,
  4047.     0,
  4048.     0,
  4049.     0,
  4050.     0,
  4051.     0,
  4052.     0,
  4053.     0,
  4054.     0,
  4055.     0,
  4056.     0,
  4057.     0,
  4058.     0,
  4059.     0,
  4060.     0,
  4061.     0,
  4062.     0,
  4063.     0,
  4064.     0,
  4065.     0,
  4066.     0,
  4067.     0,
  4068.     0,
  4069.     0,
  4070.     0,
  4071.     0,
  4072.     0,
  4073.     0,
  4074.     0,
  4075.     0,
  4076.     0,
  4077.     0,
  4078.     0,
  4079.     0,
  4080.     0,
  4081.     0,
  4082.     0,
  4083.     0,
  4084.     0,
  4085.     0,
  4086.     0,
  4087.     0,
  4088.     0,
  4089.     0,
  4090.     0,
  4091.     0,
  4092.     0,
  4093.     0,
  4094.     0,
  4095.     0,
  4096.     0,
  4097.     0,
  4098.     3,
  4099.     0,
  4100.     0,
  4101.     0,
  4102.     0,
  4103.     0,
  4104.     0,
  4105.     0,
  4106.     0,
  4107.     0,
  4108.     0,
  4109.     0,
  4110.     0,
  4111.     0,
  4112.     0,
  4113.     0,
  4114.     0,
  4115.     0,
  4116.     0,
  4117.     0,
  4118.     0,
  4119.     0,
  4120.     0,
  4121.     0,
  4122.     0,
  4123.     0,
  4124.     0,
  4125.     0,
  4126.     0,
  4127.     0,
  4128.     0,
  4129.     0,
  4130.     0,
  4131.     0,
  4132.     0,
  4133.     0,
  4134.     0,
  4135.     0,
  4136.     0,
  4137.     0,
  4138.     0,
  4139.     0,
  4140.     0,
  4141.     0,
  4142.     0,
  4143.     0,
  4144.     0,
  4145.     0,
  4146.     0,
  4147.     0,
  4148.     2,
  4149.     2,
  4150.     2,
  4151.     0,
  4152.     0,
  4153.     0,
  4154.     0,
  4155.     0,
  4156.     0,
  4157.   };
  4158.  
  4159. char *const insn_operand_constraint[][MAX_RECOG_OPERANDS] =
  4160.   {
  4161.     { "=m", "ro<>fF", },
  4162.     { "=m", "ro<>F", },
  4163.     { "rm", },
  4164.     { "rm", },
  4165.     { "dm", },
  4166.     { "", },
  4167.     { "fdm", },
  4168.     { "ro", },
  4169.     { "", },
  4170.     { "fm", },
  4171.     { "ro", },
  4172.     { "", },
  4173.     { "f", },
  4174.     { "ro", },
  4175.     { "rM,mr,>", "mr,Mr,>", },
  4176.     { "rnm,d,n,m", "d,rnm,m,n", },
  4177.     { "dn,d,m,>", "dm,nd,d,>", },
  4178.     { "", "", },
  4179.     { "f,mdG", "fmdG,f", },
  4180.     { "ro", "ro", },
  4181.     { "", "", },
  4182.     { "f,mG", "fmG,f", },
  4183.     { "ro", "ro", },
  4184.     { "", "", },
  4185.     { "f,mG", "fmG,f", },
  4186.     { "ro", "ro", },
  4187.     { "do", "di", },
  4188.     { "d", "di", },
  4189.     { "do", "d", },
  4190.     { "d", "d", },
  4191.     { "md", "i", },
  4192.     { "o,d", "i,i", },
  4193.     { "do", "i", },
  4194.     { "dm", },
  4195.     { "dm", "i", },
  4196.     { "=m", "J", },
  4197.     { "=g", },
  4198.     { "=dam", "dami", },
  4199.     { "=g", "g", },
  4200.     { "+dm", "rmn", },
  4201.     { "=d,*a,m", "dmi*a,d*a,dmi", },
  4202.     { "+dm", "dmn", },
  4203.     { "=rmf", "rmfF", },
  4204.     { "=rm,&rf,&ro<>f", "rf,m,ro<>fF", },
  4205.     { "=&ro<>f", "ro<>fF", },
  4206.     { "=rm,&rf,&ro<>,!&rm,!&f", "r,m,roi<>,fF,rfF", },
  4207.     { "=m", "p", },
  4208.     { "=dm,d", "doJ,i", },
  4209.     { "=dm,d", "doJ,i", },
  4210.     { "=dm,d", "roJ,i", },
  4211.     { "", "", },
  4212.     { "", "", },
  4213.     { "", "", },
  4214.     { "=do<>", "rmn", },
  4215.     { "=do<>", "dmn", },
  4216.     { "=do<>", "dmn", },
  4217.     { "=*d,a", "0,rmn", },
  4218.     { "=d", "0", },
  4219.     { "=d", "0", },
  4220.     { "", "", },
  4221.     { "=*fdm,f", "f,dmF", },
  4222.     { "=ro", "ro", },
  4223.     { "", "", },
  4224.     { "=*fm,f", "f,dmF", },
  4225.     { "=ro", "ro", },
  4226.     { "", "", },
  4227.     { "=*fm,f", "f,mF", },
  4228.     { "=ro", "ro", },
  4229.     { "", "", },
  4230.     { "=dm", "f", },
  4231.     { "=ro", "ro", },
  4232.     { "", "", },
  4233.     { "=dm", "f", },
  4234.     { "=ro", "ro", },
  4235.     { "", "", },
  4236.     { "=dm", "f", },
  4237.     { "=ro", "ro", },
  4238.     { "", "", },
  4239.     { "=f", "dmi", },
  4240.     { "=ro", "ro", },
  4241.     { "", "", },
  4242.     { "=f", "dmi", },
  4243.     { "=ro", "ro", },
  4244.     { "", "", },
  4245.     { "=f", "dmi", },
  4246.     { "=ro", "ro", },
  4247.     { "=f", "dmn", },
  4248.     { "=f", "dmn", },
  4249.     { "=f", "dmn", },
  4250.     { "=f", "dmn", },
  4251.     { "=f", "dmn", },
  4252.     { "=f", "dmn", },
  4253.     { "", "", },
  4254.     { "=ro", "0", },
  4255.     { "=f", "dfmF", },
  4256.     { "", "", },
  4257.     { "=ro", "0", },
  4258.     { "=f", "fmF", },
  4259.     { "", "", },
  4260.     { "=ro", "0", },
  4261.     { "=f", "fmF", },
  4262.     { "=dm", "f", },
  4263.     { "=dm", "f", },
  4264.     { "=dm", "f", },
  4265.     { "=dm", "f", },
  4266.     { "=dm", "f", },
  4267.     { "=dm", "f", },
  4268.     { "=dm", "f", },
  4269.     { "=dm", "f", },
  4270.     { "", "", },
  4271.     { "=do", "ro", },
  4272.     { "=dm", "f", },
  4273.     { "", "", },
  4274.     { "=do", "ro", },
  4275.     { "=do", "f", },
  4276.     { "=m,r,!a,!a", "%0,0,a,rJK", "dIKLM,mrIKLM,rJK,a", },
  4277.     { "=a", "0", "rmn", },
  4278.     { "=m,r", "%0,0", "dn,rmn", },
  4279.     { "+m,d", "dn,rmn", },
  4280.     { "=m,d", "%0,0", "dn,dmn", },
  4281.     { "+m,d", "dn,dmn", },
  4282.     { "", "", "", },
  4283.     { "=f", "%0", "dfmF", },
  4284.     { "=ro", "%0", "ro", },
  4285.     { "", "", "", },
  4286.     { "=f", "%0", "fmF", },
  4287.     { "=ro", "%0", "ro", },
  4288.     { "", "", "", },
  4289.     { "=f", "%0", "fmG", },
  4290.     { "=ro", "%0", "ro", },
  4291.     { "=m,r,!a,?d", "0,0,a,mrIKs", "dIKs,mrIKs,J,0", },
  4292.     { "=a", "0", "rmn", },
  4293.     { "=m,r", "0,0", "dn,rmn", },
  4294.     { "+m,d", "dn,rmn", },
  4295.     { "=m,d", "0,0", "dn,dmn", },
  4296.     { "+m,d", "dn,dmn", },
  4297.     { "", "", "", },
  4298.     { "=f", "0", "dfmF", },
  4299.     { "=ro", "0", "ro", },
  4300.     { "", "", "", },
  4301.     { "=f", "0", "fmF", },
  4302.     { "=ro", "0", "ro", },
  4303.     { "", "", "", },
  4304.     { "=f", "0", "fmG", },
  4305.     { "=ro", "0", "ro", },
  4306.     { "=d", "%0", "dmn", },
  4307.     { "=d", "%0", "dmn", },
  4308.     { "", "", "", },
  4309.     { "=d", "%0", "dmsK", },
  4310.     { "=d", "%0", "dsK", },
  4311.     { "=d", "%0", "dmn", },
  4312.     { "=d", "%0", "dmn", },
  4313.     { "", "", "", },
  4314.     { "=d", "%0", "dmsK", },
  4315.     { "=d", "%0", "dsK", },
  4316.     { "", "", "", },
  4317.     { "=f", "%0", "dfmF", },
  4318.     { "=ro", "%0", "ro", },
  4319.     { "", "", "", },
  4320.     { "=f", "%0", "fmF", },
  4321.     { "=ro", "%0", "ro", },
  4322.     { "", "", "", },
  4323.     { "=f", "%0", "fmG", },
  4324.     { "=ro", "%0", "ro", },
  4325.     { "=d", "0", "dmn", },
  4326.     { "=d", "0", "dmn", },
  4327.     { "", "", "", },
  4328.     { "=d", "0", "dmsK", },
  4329.     { "=d", "0", "dsK", },
  4330.     { "=d", "0", "dmn", },
  4331.     { "=d", "0", "dmn", },
  4332.     { "", "", "", },
  4333.     { "=d", "0", "dmsK", },
  4334.     { "=d", "0", "dsK", },
  4335.     { "", "", "", },
  4336.     { "=f", "0", "dfmF", },
  4337.     { "=ro", "0", "ro", },
  4338.     { "", "", "", },
  4339.     { "=f", "0", "fmG", },
  4340.     { "=ro", "0", "ro", },
  4341.     { "", "", "", },
  4342.     { "=f", "0", "fmG", },
  4343.     { "=ro", "0", "ro", },
  4344.     { "=d", "0", "dmn", },
  4345.     { "=d", "0", "dmn", },
  4346.     { "=d", "0", "dmn", },
  4347.     { "=d", "0", "dmn", },
  4348.     { "=d", "0", "dmsK", "=d", },
  4349.     { "=d", "0", "dmsK", "=d", },
  4350.     { "=m,d", "%0,0", "dKs,dmKs", },
  4351.     { "=m,d", "%0,0", "dn,dmn", },
  4352.     { "=m,d", "%0,0", "dn,dmn", },
  4353.     { "=d", "dm", "0", },
  4354.     { "=d", "dm", "0", },
  4355.     { "=m,d", "%0,0", "dKs,dmKs", },
  4356.     { "=m,d", "%0,0", "dn,dmn", },
  4357.     { "=m,d", "%0,0", "dn,dmn", },
  4358.     { "=do,m", "%0,0", "di,dKs", },
  4359.     { "=dm", "%0", "dn", },
  4360.     { "=dm", "%0", "dn", },
  4361.     { "=dm", "0", },
  4362.     { "=dm", "0", },
  4363.     { "=dm", "0", },
  4364.     { "", "", },
  4365.     { "=f", "fmF", },
  4366.     { "=ro", "0", },
  4367.     { "", "", },
  4368.     { "=f", "fmG", },
  4369.     { "=ro", "0", },
  4370.     { "", "", },
  4371.     { "=f", "fmG", },
  4372.     { "=ro", "0", },
  4373.     { "=f", "fmG", },
  4374.     { "=f", "fmG", },
  4375.     { "=f", "fmG", },
  4376.     { "=f", "fmG", },
  4377.     { "=f", "fmG", },
  4378.     { "=f", "fmG", },
  4379.     { "=f", "fmG", },
  4380.     { "=f", "fmG", },
  4381.     { "=f", "fmG", },
  4382.     { "=f", "fmG", },
  4383.     { "=f", "fmG", },
  4384.     { "=f", "fmG", },
  4385.     { "=f", "fmG", },
  4386.     { "", "", },
  4387.     { "=f", "fmF", },
  4388.     { "=ro", "0", },
  4389.     { "", "", },
  4390.     { "=f", "fmG", },
  4391.     { "=ro", "0", },
  4392.     { "", "", },
  4393.     { "=f", "fmG", },
  4394.     { "=ro", "0", },
  4395.     { "=dm", "0", },
  4396.     { "=dm", "0", },
  4397.     { "=dm", "0", },
  4398.     { "=d", "m", },
  4399.     { "=d", "m", },
  4400.     { "i", "m", },
  4401.     { "m", "i", },
  4402.     { "i", "m", },
  4403.     { "m", "i", },
  4404.     { "=d", "0", "dI", },
  4405.     { "=d", "0", "dI", },
  4406.     { "=d", "0", "dI", },
  4407.     { "=d", "0", "dI", },
  4408.     { "=d", "0", "dI", },
  4409.     { "=d", "0", "dI", },
  4410.     { "=d", "0", "dI", },
  4411.     { "=d", "0", "dI", },
  4412.     { "=d", "0", "dI", },
  4413.     { "=d", "0", "dI", },
  4414.     { "=d", "0", "dI", },
  4415.     { "=d", "0", "dI", },
  4416.     { "=d", "0", "dI", },
  4417.     { "=d", "0", "dI", },
  4418.     { "=d", "0", "dI", },
  4419.     { "=d", "0", "dI", },
  4420.     { "=d", "0", "dI", },
  4421.     { "=d", "0", "dI", },
  4422.     { "+do", "i", "i", "d", },
  4423.     { "=&d", "do", "i", "i", },
  4424.     { "=d", "do", "i", "i", },
  4425.     { "=d,d", "o,d", "di,di", "di,di", },
  4426.     { "=d,d", "o,d", "di,di", "di,di", },
  4427.     { "+o,d", "di,di", "di,di", "i,i", },
  4428.     { "+o,d", "di,di", "di,di", },
  4429.     { "+o,d", "di,di", "di,di", },
  4430.     { "+o,d", "di,di", "di,di", "d,d", },
  4431.     { "=d", "d", "di", "di", },
  4432.     { "=d", "d", "di", "di", },
  4433.     { "+d", "di", "di", },
  4434.     { "+d", "di", "di", },
  4435.     { "+d", "di", "di", "d", },
  4436.     { "o", "di", "di", },
  4437.     { "o", "di", "di", },
  4438.     { "o", "di", "di", },
  4439.     { "d", "di", "di", },
  4440.     { "d", "di", "di", },
  4441.     { "d", "di", "di", },
  4442.     { "=d", },
  4443.     { "=d", },
  4444.     { "=d", },
  4445.     { "=d", },
  4446.     { "=d", },
  4447.     { "=d", },
  4448.     { "=d", },
  4449.     { "=d", },
  4450.     { "=d", },
  4451.     { "=d", },
  4452.     { 0 },
  4453.     { 0 },
  4454.     { 0 },
  4455.     { 0 },
  4456.     { 0 },
  4457.     { 0 },
  4458.     { 0 },
  4459.     { 0 },
  4460.     { 0 },
  4461.     { 0 },
  4462.     { 0 },
  4463.     { 0 },
  4464.     { 0 },
  4465.     { 0 },
  4466.     { 0 },
  4467.     { 0 },
  4468.     { 0 },
  4469.     { 0 },
  4470.     { 0 },
  4471.     { 0 },
  4472.     { "", "", "", "", },
  4473.     { "", "", },
  4474.     { "", "", "", "", "", },
  4475.     { "r", },
  4476.     { 0 },
  4477.     { "g", },
  4478.     { "g", },
  4479.     { "g", },
  4480.     { "o", "g", },
  4481.     { "rf", "o", "g", },
  4482.     { 0 },
  4483.     { 0 },
  4484.     { "=a", "p", },
  4485.     { "f", "ad", },
  4486.   };
  4487.  
  4488. const enum machine_mode insn_operand_mode[][MAX_RECOG_OPERANDS] =
  4489.   {
  4490.     { DFmode, DFmode, },
  4491.     { DImode, DImode, },
  4492.     { SImode, },
  4493.     { HImode, },
  4494.     { QImode, },
  4495.     { SFmode, },
  4496.     { SFmode, },
  4497.     { SFmode, },
  4498.     { DFmode, },
  4499.     { DFmode, },
  4500.     { DFmode, },
  4501.     { XFmode, },
  4502.     { XFmode, },
  4503.     { XFmode, },
  4504.     { SImode, SImode, },
  4505.     { HImode, HImode, },
  4506.     { QImode, QImode, },
  4507.     { SFmode, SFmode, },
  4508.     { SFmode, SFmode, },
  4509.     { SFmode, SFmode, },
  4510.     { DFmode, DFmode, },
  4511.     { DFmode, DFmode, },
  4512.     { DFmode, DFmode, },
  4513.     { XFmode, XFmode, },
  4514.     { XFmode, XFmode, },
  4515.     { XFmode, XFmode, },
  4516.     { QImode, SImode, },
  4517.     { SImode, SImode, },
  4518.     { QImode, SImode, },
  4519.     { SImode, SImode, },
  4520.     { QImode, SImode, },
  4521.     { HImode, SImode, },
  4522.     { SImode, SImode, },
  4523.     { QImode, },
  4524.     { QImode, SImode, },
  4525.     { SImode, SImode, },
  4526.     { SImode, },
  4527.     { SImode, SImode, },
  4528.     { HImode, HImode, },
  4529.     { HImode, HImode, },
  4530.     { QImode, QImode, },
  4531.     { QImode, QImode, },
  4532.     { SFmode, SFmode, },
  4533.     { DFmode, DFmode, },
  4534.     { XFmode, XFmode, },
  4535.     { DImode, DImode, },
  4536.     { SImode, SImode, },
  4537.     { QImode, SImode, },
  4538.     { QImode, HImode, },
  4539.     { HImode, SImode, },
  4540.     { SImode, HImode, },
  4541.     { HImode, QImode, },
  4542.     { SImode, QImode, },
  4543.     { SImode, HImode, },
  4544.     { HImode, QImode, },
  4545.     { SImode, QImode, },
  4546.     { SImode, HImode, },
  4547.     { HImode, QImode, },
  4548.     { SImode, QImode, },
  4549.     { DFmode, SFmode, },
  4550.     { DFmode, SFmode, },
  4551.     { DFmode, SFmode, },
  4552.     { XFmode, SFmode, },
  4553.     { XFmode, SFmode, },
  4554.     { XFmode, SFmode, },
  4555.     { XFmode, DFmode, },
  4556.     { XFmode, DFmode, },
  4557.     { XFmode, DFmode, },
  4558.     { SFmode, DFmode, },
  4559.     { SFmode, DFmode, },
  4560.     { SFmode, DFmode, },
  4561.     { SFmode, XFmode, },
  4562.     { SFmode, XFmode, },
  4563.     { SFmode, XFmode, },
  4564.     { DFmode, XFmode, },
  4565.     { DFmode, XFmode, },
  4566.     { DFmode, XFmode, },
  4567.     { SFmode, SImode, },
  4568.     { SFmode, SImode, },
  4569.     { SFmode, SImode, },
  4570.     { DFmode, SImode, },
  4571.     { DFmode, SImode, },
  4572.     { DFmode, SImode, },
  4573.     { XFmode, SImode, },
  4574.     { XFmode, SImode, },
  4575.     { XFmode, SImode, },
  4576.     { SFmode, HImode, },
  4577.     { DFmode, HImode, },
  4578.     { XFmode, HImode, },
  4579.     { SFmode, QImode, },
  4580.     { DFmode, QImode, },
  4581.     { XFmode, QImode, },
  4582.     { SFmode, SFmode, },
  4583.     { SFmode, SFmode, },
  4584.     { SFmode, SFmode, },
  4585.     { DFmode, DFmode, },
  4586.     { DFmode, DFmode, },
  4587.     { DFmode, DFmode, },
  4588.     { XFmode, XFmode, },
  4589.     { XFmode, XFmode, },
  4590.     { XFmode, XFmode, },
  4591.     { QImode, SFmode, },
  4592.     { HImode, SFmode, },
  4593.     { SImode, SFmode, },
  4594.     { QImode, DFmode, },
  4595.     { HImode, DFmode, },
  4596.     { SImode, DFmode, },
  4597.     { QImode, XFmode, },
  4598.     { HImode, XFmode, },
  4599.     { SImode, XFmode, },
  4600.     { SImode, XFmode, },
  4601.     { SImode, XFmode, },
  4602.     { SImode, XFmode, },
  4603.     { SImode, XFmode, },
  4604.     { SImode, XFmode, },
  4605.     { SImode, SImode, SImode, },
  4606.     { SImode, SImode, HImode, },
  4607.     { HImode, HImode, HImode, },
  4608.     { HImode, HImode, },
  4609.     { QImode, QImode, QImode, },
  4610.     { QImode, QImode, },
  4611.     { SFmode, SFmode, SFmode, },
  4612.     { SFmode, SFmode, SFmode, },
  4613.     { SFmode, SFmode, SFmode, },
  4614.     { DFmode, DFmode, DFmode, },
  4615.     { DFmode, DFmode, DFmode, },
  4616.     { DFmode, DFmode, DFmode, },
  4617.     { XFmode, XFmode, XFmode, },
  4618.     { XFmode, XFmode, XFmode, },
  4619.     { XFmode, XFmode, XFmode, },
  4620.     { SImode, SImode, SImode, },
  4621.     { SImode, SImode, HImode, },
  4622.     { HImode, HImode, HImode, },
  4623.     { HImode, HImode, },
  4624.     { QImode, QImode, QImode, },
  4625.     { QImode, QImode, },
  4626.     { SFmode, SFmode, SFmode, },
  4627.     { SFmode, SFmode, SFmode, },
  4628.     { SFmode, SFmode, SFmode, },
  4629.     { DFmode, DFmode, DFmode, },
  4630.     { DFmode, DFmode, DFmode, },
  4631.     { DFmode, DFmode, DFmode, },
  4632.     { XFmode, XFmode, XFmode, },
  4633.     { XFmode, XFmode, XFmode, },
  4634.     { XFmode, XFmode, XFmode, },
  4635.     { HImode, HImode, HImode, },
  4636.     { SImode, HImode, HImode, },
  4637.     { SImode, SImode, SImode, },
  4638.     { SImode, SImode, SImode, },
  4639.     { SImode, SImode, SImode, },
  4640.     { HImode, HImode, HImode, },
  4641.     { SImode, HImode, HImode, },
  4642.     { SImode, SImode, SImode, },
  4643.     { SImode, SImode, SImode, },
  4644.     { SImode, SImode, SImode, },
  4645.     { SFmode, SFmode, SFmode, },
  4646.     { SFmode, SFmode, SFmode, },
  4647.     { SFmode, SFmode, SFmode, },
  4648.     { DFmode, DFmode, DFmode, },
  4649.     { DFmode, DFmode, DFmode, },
  4650.     { DFmode, DFmode, DFmode, },
  4651.     { XFmode, XFmode, XFmode, },
  4652.     { XFmode, XFmode, XFmode, },
  4653.     { XFmode, XFmode, XFmode, },
  4654.     { HImode, HImode, HImode, },
  4655.     { HImode, SImode, HImode, },
  4656.     { SImode, SImode, SImode, },
  4657.     { SImode, SImode, SImode, },
  4658.     { SImode, SImode, SImode, },
  4659.     { HImode, HImode, HImode, },
  4660.     { HImode, SImode, HImode, },
  4661.     { SImode, SImode, SImode, },
  4662.     { SImode, SImode, SImode, },
  4663.     { SImode, SImode, SImode, },
  4664.     { SFmode, SFmode, SFmode, },
  4665.     { SFmode, SFmode, SFmode, },
  4666.     { SFmode, SFmode, SFmode, },
  4667.     { DFmode, DFmode, DFmode, },
  4668.     { DFmode, DFmode, DFmode, },
  4669.     { DFmode, DFmode, DFmode, },
  4670.     { XFmode, XFmode, XFmode, },
  4671.     { XFmode, XFmode, XFmode, },
  4672.     { XFmode, XFmode, XFmode, },
  4673.     { HImode, HImode, HImode, },
  4674.     { HImode, SImode, HImode, },
  4675.     { HImode, HImode, HImode, },
  4676.     { HImode, SImode, HImode, },
  4677.     { SImode, SImode, SImode, SImode, },
  4678.     { SImode, SImode, SImode, SImode, },
  4679.     { SImode, SImode, SImode, },
  4680.     { HImode, HImode, HImode, },
  4681.     { QImode, QImode, QImode, },
  4682.     { SImode, HImode, SImode, },
  4683.     { SImode, QImode, SImode, },
  4684.     { SImode, SImode, SImode, },
  4685.     { HImode, HImode, HImode, },
  4686.     { QImode, QImode, QImode, },
  4687.     { SImode, SImode, SImode, },
  4688.     { HImode, HImode, HImode, },
  4689.     { QImode, QImode, QImode, },
  4690.     { SImode, SImode, },
  4691.     { HImode, HImode, },
  4692.     { QImode, QImode, },
  4693.     { SFmode, SFmode, },
  4694.     { SFmode, SFmode, },
  4695.     { SFmode, SFmode, },
  4696.     { DFmode, DFmode, },
  4697.     { DFmode, DFmode, },
  4698.     { DFmode, DFmode, },
  4699.     { XFmode, XFmode, },
  4700.     { XFmode, XFmode, },
  4701.     { XFmode, XFmode, },
  4702.     { XFmode, XFmode, },
  4703.     { XFmode, XFmode, },
  4704.     { XFmode, XFmode, },
  4705.     { XFmode, XFmode, },
  4706.     { XFmode, XFmode, },
  4707.     { XFmode, XFmode, },
  4708.     { XFmode, XFmode, },
  4709.     { XFmode, XFmode, },
  4710.     { XFmode, XFmode, },
  4711.     { XFmode, XFmode, },
  4712.     { XFmode, XFmode, },
  4713.     { XFmode, XFmode, },
  4714.     { XFmode, XFmode, },
  4715.     { SFmode, SFmode, },
  4716.     { SFmode, SFmode, },
  4717.     { SFmode, SFmode, },
  4718.     { DFmode, DFmode, },
  4719.     { DFmode, DFmode, },
  4720.     { DFmode, DFmode, },
  4721.     { XFmode, XFmode, },
  4722.     { XFmode, XFmode, },
  4723.     { XFmode, XFmode, },
  4724.     { SImode, SImode, },
  4725.     { HImode, HImode, },
  4726.     { QImode, QImode, },
  4727.     { SImode, SImode, },
  4728.     { SImode, SImode, },
  4729.     { QImode, SImode, },
  4730.     { SImode, QImode, },
  4731.     { QImode, SImode, },
  4732.     { SImode, QImode, },
  4733.     { SImode, SImode, SImode, },
  4734.     { HImode, HImode, HImode, },
  4735.     { QImode, QImode, QImode, },
  4736.     { SImode, SImode, SImode, },
  4737.     { HImode, HImode, HImode, },
  4738.     { QImode, QImode, QImode, },
  4739.     { SImode, SImode, SImode, },
  4740.     { HImode, HImode, HImode, },
  4741.     { QImode, QImode, QImode, },
  4742.     { SImode, SImode, SImode, },
  4743.     { HImode, HImode, HImode, },
  4744.     { QImode, QImode, QImode, },
  4745.     { SImode, SImode, SImode, },
  4746.     { HImode, HImode, HImode, },
  4747.     { QImode, QImode, QImode, },
  4748.     { SImode, SImode, SImode, },
  4749.     { HImode, HImode, HImode, },
  4750.     { QImode, QImode, QImode, },
  4751.     { SImode, SImode, SImode, SImode, },
  4752.     { SImode, SImode, SImode, SImode, },
  4753.     { SImode, SImode, SImode, SImode, },
  4754.     { SImode, QImode, SImode, SImode, },
  4755.     { SImode, QImode, SImode, SImode, },
  4756.     { QImode, SImode, SImode, VOIDmode, },
  4757.     { QImode, SImode, SImode, },
  4758.     { QImode, SImode, SImode, },
  4759.     { QImode, SImode, SImode, SImode, },
  4760.     { SImode, SImode, SImode, SImode, },
  4761.     { SImode, SImode, SImode, SImode, },
  4762.     { SImode, SImode, SImode, },
  4763.     { SImode, SImode, SImode, },
  4764.     { SImode, SImode, SImode, SImode, },
  4765.     { QImode, SImode, SImode, },
  4766.     { QImode, SImode, SImode, },
  4767.     { QImode, SImode, SImode, },
  4768.     { SImode, SImode, SImode, },
  4769.     { SImode, SImode, SImode, },
  4770.     { SImode, SImode, SImode, },
  4771.     { QImode, },
  4772.     { QImode, },
  4773.     { QImode, },
  4774.     { QImode, },
  4775.     { QImode, },
  4776.     { QImode, },
  4777.     { QImode, },
  4778.     { QImode, },
  4779.     { QImode, },
  4780.     { QImode, },
  4781.     { VOIDmode },
  4782.     { VOIDmode },
  4783.     { VOIDmode },
  4784.     { VOIDmode },
  4785.     { VOIDmode },
  4786.     { VOIDmode },
  4787.     { VOIDmode },
  4788.     { VOIDmode },
  4789.     { VOIDmode },
  4790.     { VOIDmode },
  4791.     { VOIDmode },
  4792.     { VOIDmode },
  4793.     { VOIDmode },
  4794.     { VOIDmode },
  4795.     { VOIDmode },
  4796.     { VOIDmode },
  4797.     { VOIDmode },
  4798.     { VOIDmode },
  4799.     { VOIDmode },
  4800.     { VOIDmode },
  4801.     { SImode, SImode, SImode, SImode, },
  4802.     { SImode, SImode, },
  4803.     { SImode, SImode, SImode, VOIDmode, VOIDmode, },
  4804.     { HImode, },
  4805.     { VOIDmode },
  4806.     { HImode, },
  4807.     { SImode, },
  4808.     { SImode, },
  4809.     { QImode, SImode, },
  4810.     { VOIDmode, QImode, SImode, },
  4811.     { VOIDmode },
  4812.     { VOIDmode },
  4813.     { SImode, QImode, },
  4814.     { VOIDmode, VOIDmode, },
  4815.   };
  4816.  
  4817. const char insn_operand_strict_low[][MAX_RECOG_OPERANDS] =
  4818.   {
  4819.     { 0, 0, },
  4820.     { 0, 0, },
  4821.     { 0, },
  4822.     { 0, },
  4823.     { 0, },
  4824.     { 0, },
  4825.     { 0, },
  4826.     { 0, },
  4827.     { 0, },
  4828.     { 0, },
  4829.     { 0, },
  4830.     { 0, },
  4831.     { 0, },
  4832.     { 0, },
  4833.     { 0, 0, },
  4834.     { 0, 0, },
  4835.     { 0, 0, },
  4836.     { 0, 0, },
  4837.     { 0, 0, },
  4838.     { 0, 0, },
  4839.     { 0, 0, },
  4840.     { 0, 0, },
  4841.     { 0, 0, },
  4842.     { 0, 0, },
  4843.     { 0, 0, },
  4844.     { 0, 0, },
  4845.     { 0, 0, },
  4846.     { 0, 0, },
  4847.     { 0, 0, },
  4848.     { 0, 0, },
  4849.     { 0, 0, },
  4850.     { 0, 0, },
  4851.     { 0, 0, },
  4852.     { 0, },
  4853.     { 0, 0, },
  4854.     { 0, 0, },
  4855.     { 0, },
  4856.     { 0, 0, },
  4857.     { 0, 0, },
  4858.     { 1, 0, },
  4859.     { 0, 0, },
  4860.     { 1, 0, },
  4861.     { 0, 0, },
  4862.     { 0, 0, },
  4863.     { 0, 0, },
  4864.     { 0, 0, },
  4865.     { 0, 0, },
  4866.     { 0, 0, },
  4867.     { 0, 0, },
  4868.     { 0, 0, },
  4869.     { 0, 0, },
  4870.     { 0, 0, },
  4871.     { 0, 0, },
  4872.     { 0, 0, },
  4873.     { 0, 0, },
  4874.     { 0, 0, },
  4875.     { 0, 0, },
  4876.     { 0, 0, },
  4877.     { 0, 0, },
  4878.     { 0, 0, },
  4879.     { 0, 0, },
  4880.     { 0, 0, },
  4881.     { 0, 0, },
  4882.     { 0, 0, },
  4883.     { 0, 0, },
  4884.     { 0, 0, },
  4885.     { 0, 0, },
  4886.     { 0, 0, },
  4887.     { 0, 0, },
  4888.     { 0, 0, },
  4889.     { 0, 0, },
  4890.     { 0, 0, },
  4891.     { 0, 0, },
  4892.     { 0, 0, },
  4893.     { 0, 0, },
  4894.     { 0, 0, },
  4895.     { 0, 0, },
  4896.     { 0, 0, },
  4897.     { 0, 0, },
  4898.     { 0, 0, },
  4899.     { 0, 0, },
  4900.     { 0, 0, },
  4901.     { 0, 0, },
  4902.     { 0, 0, },
  4903.     { 0, 0, },
  4904.     { 0, 0, },
  4905.     { 0, 0, },
  4906.     { 0, 0, },
  4907.     { 0, 0, },
  4908.     { 0, 0, },
  4909.     { 0, 0, },
  4910.     { 0, 0, },
  4911.     { 0, 0, },
  4912.     { 0, 0, },
  4913.     { 0, 0, },
  4914.     { 0, 0, },
  4915.     { 0, 0, },
  4916.     { 0, 0, },
  4917.     { 0, 0, },
  4918.     { 0, 0, },
  4919.     { 0, 0, },
  4920.     { 0, 0, },
  4921.     { 0, 0, },
  4922.     { 0, 0, },
  4923.     { 0, 0, },
  4924.     { 0, 0, },
  4925.     { 0, 0, },
  4926.     { 0, 0, },
  4927.     { 0, 0, },
  4928.     { 0, 0, },
  4929.     { 0, 0, },
  4930.     { 0, 0, },
  4931.     { 0, 0, },
  4932.     { 0, 0, },
  4933.     { 0, 0, },
  4934.     { 0, 0, 0, },
  4935.     { 0, 0, 0, },
  4936.     { 0, 0, 0, },
  4937.     { 1, 0, },
  4938.     { 0, 0, 0, },
  4939.     { 1, 0, },
  4940.     { 0, 0, 0, },
  4941.     { 0, 0, 0, },
  4942.     { 0, 0, 0, },
  4943.     { 0, 0, 0, },
  4944.     { 0, 0, 0, },
  4945.     { 0, 0, 0, },
  4946.     { 0, 0, 0, },
  4947.     { 0, 0, 0, },
  4948.     { 0, 0, 0, },
  4949.     { 0, 0, 0, },
  4950.     { 0, 0, 0, },
  4951.     { 0, 0, 0, },
  4952.     { 1, 0, },
  4953.     { 0, 0, 0, },
  4954.     { 1, 0, },
  4955.     { 0, 0, 0, },
  4956.     { 0, 0, 0, },
  4957.     { 0, 0, 0, },
  4958.     { 0, 0, 0, },
  4959.     { 0, 0, 0, },
  4960.     { 0, 0, 0, },
  4961.     { 0, 0, 0, },
  4962.     { 0, 0, 0, },
  4963.     { 0, 0, 0, },
  4964.     { 0, 0, 0, },
  4965.     { 0, 0, 0, },
  4966.     { 0, 0, 0, },
  4967.     { 0, 0, 0, },
  4968.     { 0, 0, 0, },
  4969.     { 0, 0, 0, },
  4970.     { 0, 0, 0, },
  4971.     { 0, 0, 0, },
  4972.     { 0, 0, 0, },
  4973.     { 0, 0, 0, },
  4974.     { 0, 0, 0, },
  4975.     { 0, 0, 0, },
  4976.     { 0, 0, 0, },
  4977.     { 0, 0, 0, },
  4978.     { 0, 0, 0, },
  4979.     { 0, 0, 0, },
  4980.     { 0, 0, 0, },
  4981.     { 0, 0, 0, },
  4982.     { 0, 0, 0, },
  4983.     { 0, 0, 0, },
  4984.     { 0, 0, 0, },
  4985.     { 0, 0, 0, },
  4986.     { 0, 0, 0, },
  4987.     { 0, 0, 0, },
  4988.     { 0, 0, 0, },
  4989.     { 0, 0, 0, },
  4990.     { 0, 0, 0, },
  4991.     { 0, 0, 0, },
  4992.     { 0, 0, 0, },
  4993.     { 0, 0, 0, },
  4994.     { 0, 0, 0, },
  4995.     { 0, 0, 0, },
  4996.     { 0, 0, 0, },
  4997.     { 0, 0, 0, },
  4998.     { 0, 0, 0, },
  4999.     { 0, 0, 0, },
  5000.     { 0, 0, 0, },
  5001.     { 0, 0, 0, },
  5002.     { 0, 0, 0, },
  5003.     { 0, 0, 0, },
  5004.     { 0, 0, 0, },
  5005.     { 0, 0, 0, },
  5006.     { 0, 0, 0, 0, },
  5007.     { 0, 0, 0, 0, },
  5008.     { 0, 0, 0, },
  5009.     { 0, 0, 0, },
  5010.     { 0, 0, 0, },
  5011.     { 0, 0, 0, },
  5012.     { 0, 0, 0, },
  5013.     { 0, 0, 0, },
  5014.     { 0, 0, 0, },
  5015.     { 0, 0, 0, },
  5016.     { 0, 0, 0, },
  5017.     { 0, 0, 0, },
  5018.     { 0, 0, 0, },
  5019.     { 0, 0, },
  5020.     { 0, 0, },
  5021.     { 0, 0, },
  5022.     { 0, 0, },
  5023.     { 0, 0, },
  5024.     { 0, 0, },
  5025.     { 0, 0, },
  5026.     { 0, 0, },
  5027.     { 0, 0, },
  5028.     { 0, 0, },
  5029.     { 0, 0, },
  5030.     { 0, 0, },
  5031.     { 0, 0, },
  5032.     { 0, 0, },
  5033.     { 0, 0, },
  5034.     { 0, 0, },
  5035.     { 0, 0, },
  5036.     { 0, 0, },
  5037.     { 0, 0, },
  5038.     { 0, 0, },
  5039.     { 0, 0, },
  5040.     { 0, 0, },
  5041.     { 0, 0, },
  5042.     { 0, 0, },
  5043.     { 0, 0, },
  5044.     { 0, 0, },
  5045.     { 0, 0, },
  5046.     { 0, 0, },
  5047.     { 0, 0, },
  5048.     { 0, 0, },
  5049.     { 0, 0, },
  5050.     { 0, 0, },
  5051.     { 0, 0, },
  5052.     { 0, 0, },
  5053.     { 0, 0, },
  5054.     { 0, 0, },
  5055.     { 0, 0, },
  5056.     { 0, 0, },
  5057.     { 0, 0, },
  5058.     { 0, 0, },
  5059.     { 0, 0, },
  5060.     { 0, 0, },
  5061.     { 0, 0, },
  5062.     { 0, 0, 0, },
  5063.     { 0, 0, 0, },
  5064.     { 0, 0, 0, },
  5065.     { 0, 0, 0, },
  5066.     { 0, 0, 0, },
  5067.     { 0, 0, 0, },
  5068.     { 0, 0, 0, },
  5069.     { 0, 0, 0, },
  5070.     { 0, 0, 0, },
  5071.     { 0, 0, 0, },
  5072.     { 0, 0, 0, },
  5073.     { 0, 0, 0, },
  5074.     { 0, 0, 0, },
  5075.     { 0, 0, 0, },
  5076.     { 0, 0, 0, },
  5077.     { 0, 0, 0, },
  5078.     { 0, 0, 0, },
  5079.     { 0, 0, 0, },
  5080.     { 0, 0, 0, 0, },
  5081.     { 0, 0, 0, 0, },
  5082.     { 0, 0, 0, 0, },
  5083.     { 0, 0, 0, 0, },
  5084.     { 0, 0, 0, 0, },
  5085.     { 0, 0, 0, 0, },
  5086.     { 0, 0, 0, },
  5087.     { 0, 0, 0, },
  5088.     { 0, 0, 0, 0, },
  5089.     { 0, 0, 0, 0, },
  5090.     { 0, 0, 0, 0, },
  5091.     { 0, 0, 0, },
  5092.     { 0, 0, 0, },
  5093.     { 0, 0, 0, 0, },
  5094.     { 0, 0, 0, },
  5095.     { 0, 0, 0, },
  5096.     { 0, 0, 0, },
  5097.     { 0, 0, 0, },
  5098.     { 0, 0, 0, },
  5099.     { 0, 0, 0, },
  5100.     { 0, },
  5101.     { 0, },
  5102.     { 0, },
  5103.     { 0, },
  5104.     { 0, },
  5105.     { 0, },
  5106.     { 0, },
  5107.     { 0, },
  5108.     { 0, },
  5109.     { 0, },
  5110.     { 0 },
  5111.     { 0 },
  5112.     { 0 },
  5113.     { 0 },
  5114.     { 0 },
  5115.     { 0 },
  5116.     { 0 },
  5117.     { 0 },
  5118.     { 0 },
  5119.     { 0 },
  5120.     { 0 },
  5121.     { 0 },
  5122.     { 0 },
  5123.     { 0 },
  5124.     { 0 },
  5125.     { 0 },
  5126.     { 0 },
  5127.     { 0 },
  5128.     { 0 },
  5129.     { 0 },
  5130.     { 0, 0, 0, 0, },
  5131.     { 0, 0, },
  5132.     { 0, 0, 0, 0, 0, },
  5133.     { 0, },
  5134.     { 0 },
  5135.     { 0, },
  5136.     { 0, },
  5137.     { 0, },
  5138.     { 0, 0, },
  5139.     { 0, 0, 0, },
  5140.     { 0 },
  5141.     { 0 },
  5142.     { 0, 0, },
  5143.     { 0, 0, },
  5144.   };
  5145.  
  5146. int (*const insn_operand_predicate[][MAX_RECOG_OPERANDS])() =
  5147.   {
  5148.     { push_operand, general_operand, },
  5149.     { push_operand, general_operand, },
  5150.     { general_operand, },
  5151.     { general_operand, },
  5152.     { general_operand, },
  5153.     { general_operand, },
  5154.     { general_operand, },
  5155.     { general_operand, },
  5156.     { general_operand, },
  5157.     { general_operand, },
  5158.     { general_operand, },
  5159.     { general_operand, },
  5160.     { general_operand, },
  5161.     { general_operand, },
  5162.     { general_operand, general_operand, },
  5163.     { general_operand, general_operand, },
  5164.     { general_operand, general_operand, },
  5165.     { general_operand, general_operand, },
  5166.     { general_operand, general_operand, },
  5167.     { general_operand, general_operand, },
  5168.     { general_operand, general_operand, },
  5169.     { general_operand, general_operand, },
  5170.     { general_operand, general_operand, },
  5171.     { general_operand, general_operand, },
  5172.     { general_operand, general_operand, },
  5173.     { general_operand, general_operand, },
  5174.     { nonimmediate_operand, general_operand, },
  5175.     { nonimmediate_operand, general_operand, },
  5176.     { nonimmediate_operand, general_operand, },
  5177.     { nonimmediate_operand, general_operand, },
  5178.     { nonimmediate_operand, general_operand, },
  5179.     { nonimmediate_operand, general_operand, },
  5180.     { nonimmediate_operand, general_operand, },
  5181.     { nonimmediate_operand, },
  5182.     { nonimmediate_operand, general_operand, },
  5183.     { push_operand, general_operand, },
  5184.     { general_operand, },
  5185.     { general_operand, general_operand, },
  5186.     { general_operand, general_operand, },
  5187.     { general_operand, general_operand, },
  5188.     { general_operand, general_operand, },
  5189.     { general_operand, general_operand, },
  5190.     { general_operand, general_operand, },
  5191.     { general_operand, general_operand, },
  5192.     { general_operand, general_operand, },
  5193.     { general_operand, general_operand, },
  5194.     { push_operand, address_operand, },
  5195.     { general_operand, general_operand, },
  5196.     { general_operand, general_operand, },
  5197.     { general_operand, general_operand, },
  5198.     { register_operand, general_operand, },
  5199.     { register_operand, general_operand, },
  5200.     { register_operand, general_operand, },
  5201.     { general_operand, general_operand, },
  5202.     { general_operand, general_operand, },
  5203.     { general_operand, general_operand, },
  5204.     { general_operand, general_operand, },
  5205.     { general_operand, general_operand, },
  5206.     { general_operand, general_operand, },
  5207.     { general_operand, general_operand, },
  5208.     { general_operand, general_operand, },
  5209.     { general_operand, general_operand, },
  5210.     { general_operand, general_operand, },
  5211.     { general_operand, general_operand, },
  5212.     { general_operand, general_operand, },
  5213.     { general_operand, general_operand, },
  5214.     { general_operand, general_operand, },
  5215.     { general_operand, general_operand, },
  5216.     { general_operand, general_operand, },
  5217.     { general_operand, general_operand, },
  5218.     { general_operand, general_operand, },
  5219.     { general_operand, general_operand, },
  5220.     { general_operand, general_operand, },
  5221.     { general_operand, general_operand, },
  5222.     { general_operand, general_operand, },
  5223.     { general_operand, general_operand, },
  5224.     { general_operand, general_operand, },
  5225.     { general_operand, general_operand, },
  5226.     { general_operand, general_operand, },
  5227.     { general_operand, general_operand, },
  5228.     { general_operand, general_operand, },
  5229.     { general_operand, general_operand, },
  5230.     { general_operand, general_operand, },
  5231.     { general_operand, general_operand, },
  5232.     { general_operand, general_operand, },
  5233.     { general_operand, general_operand, },
  5234.     { general_operand, general_operand, },
  5235.     { general_operand, general_operand, },
  5236.     { general_operand, general_operand, },
  5237.     { general_operand, general_operand, },
  5238.     { general_operand, general_operand, },
  5239.     { general_operand, general_operand, },
  5240.     { general_operand, general_operand, },
  5241.     { general_operand, general_operand, },
  5242.     { general_operand, general_operand, },
  5243.     { general_operand, general_operand, },
  5244.     { general_operand, general_operand, },
  5245.     { general_operand, general_operand, },
  5246.     { general_operand, general_operand, },
  5247.     { general_operand, general_operand, },
  5248.     { general_operand, general_operand, },
  5249.     { general_operand, general_operand, },
  5250.     { general_operand, general_operand, },
  5251.     { general_operand, general_operand, },
  5252.     { general_operand, general_operand, },
  5253.     { general_operand, general_operand, },
  5254.     { general_operand, general_operand, },
  5255.     { general_operand, general_operand, },
  5256.     { general_operand, general_operand, },
  5257.     { general_operand, general_operand, },
  5258.     { general_operand, general_operand, },
  5259.     { general_operand, general_operand, },
  5260.     { general_operand, general_operand, },
  5261.     { general_operand, general_operand, },
  5262.     { general_operand, general_operand, },
  5263.     { general_operand, general_operand, general_operand, },
  5264.     { general_operand, general_operand, general_operand, },
  5265.     { general_operand, general_operand, general_operand, },
  5266.     { general_operand, general_operand, },
  5267.     { general_operand, general_operand, general_operand, },
  5268.     { general_operand, general_operand, },
  5269.     { general_operand, general_operand, general_operand, },
  5270.     { general_operand, general_operand, general_operand, },
  5271.     { general_operand, general_operand, general_operand, },
  5272.     { general_operand, general_operand, general_operand, },
  5273.     { general_operand, general_operand, general_operand, },
  5274.     { general_operand, general_operand, general_operand, },
  5275.     { general_operand, general_operand, general_operand, },
  5276.     { general_operand, general_operand, general_operand, },
  5277.     { general_operand, general_operand, general_operand, },
  5278.     { general_operand, general_operand, general_operand, },
  5279.     { general_operand, general_operand, general_operand, },
  5280.     { general_operand, general_operand, general_operand, },
  5281.     { general_operand, general_operand, },
  5282.     { general_operand, general_operand, general_operand, },
  5283.     { general_operand, general_operand, },
  5284.     { general_operand, general_operand, general_operand, },
  5285.     { general_operand, general_operand, general_operand, },
  5286.     { general_operand, general_operand, general_operand, },
  5287.     { general_operand, general_operand, general_operand, },
  5288.     { general_operand, general_operand, general_operand, },
  5289.     { general_operand, general_operand, general_operand, },
  5290.     { general_operand, general_operand, general_operand, },
  5291.     { general_operand, general_operand, general_operand, },
  5292.     { general_operand, general_operand, general_operand, },
  5293.     { general_operand, general_operand, general_operand, },
  5294.     { general_operand, general_operand, general_operand, },
  5295.     { general_operand, general_operand, general_operand, },
  5296.     { general_operand, general_operand, general_operand, },
  5297.     { general_operand, general_operand, general_operand, },
  5298.     { general_operand, general_operand, general_operand, },
  5299.     { general_operand, general_operand, general_operand, },
  5300.     { general_operand, general_operand, general_operand, },
  5301.     { general_operand, general_operand, general_operand, },
  5302.     { general_operand, general_operand, general_operand, },
  5303.     { general_operand, general_operand, general_operand, },
  5304.     { general_operand, general_operand, general_operand, },
  5305.     { general_operand, general_operand, general_operand, },
  5306.     { general_operand, general_operand, general_operand, },
  5307.     { general_operand, general_operand, general_operand, },
  5308.     { general_operand, general_operand, general_operand, },
  5309.     { general_operand, general_operand, general_operand, },
  5310.     { general_operand, general_operand, general_operand, },
  5311.     { general_operand, general_operand, general_operand, },
  5312.     { general_operand, general_operand, general_operand, },
  5313.     { general_operand, general_operand, general_operand, },
  5314.     { general_operand, general_operand, general_operand, },
  5315.     { general_operand, general_operand, general_operand, },
  5316.     { general_operand, general_operand, general_operand, },
  5317.     { general_operand, general_operand, general_operand, },
  5318.     { general_operand, general_operand, general_operand, },
  5319.     { general_operand, general_operand, general_operand, },
  5320.     { general_operand, general_operand, general_operand, },
  5321.     { general_operand, general_operand, general_operand, },
  5322.     { general_operand, general_operand, general_operand, },
  5323.     { general_operand, general_operand, general_operand, },
  5324.     { general_operand, general_operand, general_operand, },
  5325.     { general_operand, general_operand, general_operand, },
  5326.     { general_operand, general_operand, general_operand, },
  5327.     { general_operand, general_operand, general_operand, },
  5328.     { general_operand, general_operand, general_operand, },
  5329.     { general_operand, general_operand, general_operand, },
  5330.     { general_operand, general_operand, general_operand, },
  5331.     { general_operand, general_operand, general_operand, },
  5332.     { general_operand, general_operand, general_operand, },
  5333.     { general_operand, general_operand, general_operand, },
  5334.     { general_operand, general_operand, general_operand, },
  5335.     { general_operand, general_operand, general_operand, general_operand, },
  5336.     { general_operand, general_operand, general_operand, general_operand, },
  5337.     { general_operand, general_operand, general_operand, },
  5338.     { general_operand, general_operand, general_operand, },
  5339.     { general_operand, general_operand, general_operand, },
  5340.     { general_operand, general_operand, general_operand, },
  5341.     { general_operand, general_operand, general_operand, },
  5342.     { general_operand, general_operand, general_operand, },
  5343.     { general_operand, general_operand, general_operand, },
  5344.     { general_operand, general_operand, general_operand, },
  5345.     { general_operand, general_operand, general_operand, },
  5346.     { general_operand, general_operand, general_operand, },
  5347.     { general_operand, general_operand, general_operand, },
  5348.     { general_operand, general_operand, },
  5349.     { general_operand, general_operand, },
  5350.     { general_operand, general_operand, },
  5351.     { general_operand, general_operand, },
  5352.     { general_operand, general_operand, },
  5353.     { general_operand, general_operand, },
  5354.     { general_operand, general_operand, },
  5355.     { general_operand, general_operand, },
  5356.     { general_operand, general_operand, },
  5357.     { general_operand, general_operand, },
  5358.     { general_operand, general_operand, },
  5359.     { general_operand, general_operand, },
  5360.     { general_operand, general_operand, },
  5361.     { general_operand, general_operand, },
  5362.     { general_operand, general_operand, },
  5363.     { general_operand, general_operand, },
  5364.     { general_operand, general_operand, },
  5365.     { general_operand, general_operand, },
  5366.     { general_operand, general_operand, },
  5367.     { general_operand, general_operand, },
  5368.     { general_operand, general_operand, },
  5369.     { general_operand, general_operand, },
  5370.     { general_operand, general_operand, },
  5371.     { general_operand, general_operand, },
  5372.     { general_operand, general_operand, },
  5373.     { general_operand, general_operand, },
  5374.     { general_operand, general_operand, },
  5375.     { general_operand, general_operand, },
  5376.     { general_operand, general_operand, },
  5377.     { general_operand, general_operand, },
  5378.     { general_operand, general_operand, },
  5379.     { general_operand, general_operand, },
  5380.     { general_operand, general_operand, },
  5381.     { general_operand, general_operand, },
  5382.     { general_operand, general_operand, },
  5383.     { general_operand, general_operand, },
  5384.     { general_operand, general_operand, },
  5385.     { general_operand, memory_operand, },
  5386.     { general_operand, memory_operand, },
  5387.     { general_operand, memory_operand, },
  5388.     { memory_operand, general_operand, },
  5389.     { general_operand, memory_operand, },
  5390.     { memory_operand, general_operand, },
  5391.     { general_operand, general_operand, general_operand, },
  5392.     { general_operand, general_operand, general_operand, },
  5393.     { general_operand, general_operand, general_operand, },
  5394.     { general_operand, general_operand, general_operand, },
  5395.     { general_operand, general_operand, general_operand, },
  5396.     { general_operand, general_operand, general_operand, },
  5397.     { general_operand, general_operand, general_operand, },
  5398.     { general_operand, general_operand, general_operand, },
  5399.     { general_operand, general_operand, general_operand, },
  5400.     { general_operand, general_operand, general_operand, },
  5401.     { general_operand, general_operand, general_operand, },
  5402.     { general_operand, general_operand, general_operand, },
  5403.     { general_operand, general_operand, general_operand, },
  5404.     { general_operand, general_operand, general_operand, },
  5405.     { general_operand, general_operand, general_operand, },
  5406.     { general_operand, general_operand, general_operand, },
  5407.     { general_operand, general_operand, general_operand, },
  5408.     { general_operand, general_operand, general_operand, },
  5409.     { nonimmediate_operand, immediate_operand, immediate_operand, general_operand, },
  5410.     { general_operand, nonimmediate_operand, immediate_operand, immediate_operand, },
  5411.     { general_operand, nonimmediate_operand, immediate_operand, immediate_operand, },
  5412.     { general_operand, nonimmediate_operand, general_operand, general_operand, },
  5413.     { general_operand, nonimmediate_operand, general_operand, general_operand, },
  5414.     { nonimmediate_operand, general_operand, general_operand, immediate_operand, },
  5415.     { nonimmediate_operand, general_operand, general_operand, },
  5416.     { nonimmediate_operand, general_operand, general_operand, },
  5417.     { nonimmediate_operand, general_operand, general_operand, general_operand, },
  5418.     { general_operand, nonimmediate_operand, general_operand, general_operand, },
  5419.     { general_operand, nonimmediate_operand, general_operand, general_operand, },
  5420.     { nonimmediate_operand, general_operand, general_operand, },
  5421.     { nonimmediate_operand, general_operand, general_operand, },
  5422.     { nonimmediate_operand, general_operand, general_operand, general_operand, },
  5423.     { memory_operand, general_operand, general_operand, },
  5424.     { memory_operand, general_operand, general_operand, },
  5425.     { memory_operand, general_operand, general_operand, },
  5426.     { nonimmediate_operand, general_operand, general_operand, },
  5427.     { nonimmediate_operand, general_operand, general_operand, },
  5428.     { nonimmediate_operand, general_operand, general_operand, },
  5429.     { general_operand, },
  5430.     { general_operand, },
  5431.     { general_operand, },
  5432.     { general_operand, },
  5433.     { general_operand, },
  5434.     { general_operand, },
  5435.     { general_operand, },
  5436.     { general_operand, },
  5437.     { general_operand, },
  5438.     { general_operand, },
  5439.     { 0 },
  5440.     { 0 },
  5441.     { 0 },
  5442.     { 0 },
  5443.     { 0 },
  5444.     { 0 },
  5445.     { 0 },
  5446.     { 0 },
  5447.     { 0 },
  5448.     { 0 },
  5449.     { 0 },
  5450.     { 0 },
  5451.     { 0 },
  5452.     { 0 },
  5453.     { 0 },
  5454.     { 0 },
  5455.     { 0 },
  5456.     { 0 },
  5457.     { 0 },
  5458.     { 0 },
  5459.     { general_operand, immediate_operand, general_operand, general_operand, },
  5460.     { 0, 0, },
  5461.     { general_operand, immediate_operand, general_operand, 0, 0, },
  5462.     { general_operand, },
  5463.     { 0 },
  5464.     { general_operand, },
  5465.     { general_operand, },
  5466.     { general_operand, },
  5467.     { general_operand, general_operand, },
  5468.     { 0, general_operand, general_operand, },
  5469.     { 0 },
  5470.     { 0 },
  5471.     { general_operand, address_operand, },
  5472.     { 0, 0, },
  5473.   };
  5474.  
  5475. #ifndef DEFAULT_MACHINE_INFO
  5476. #define DEFAULT_MACHINE_INFO 0
  5477. #endif
  5478.  
  5479. const INSN_MACHINE_INFO insn_machine_info[] =
  5480.   {
  5481.      { DEFAULT_MACHINE_INFO },
  5482.      { DEFAULT_MACHINE_INFO },
  5483.      { DEFAULT_MACHINE_INFO },
  5484.      { DEFAULT_MACHINE_INFO },
  5485.      { DEFAULT_MACHINE_INFO },
  5486.      { DEFAULT_MACHINE_INFO },
  5487.      { DEFAULT_MACHINE_INFO },
  5488.      { DEFAULT_MACHINE_INFO },
  5489.      { DEFAULT_MACHINE_INFO },
  5490.      { DEFAULT_MACHINE_INFO },
  5491.      { DEFAULT_MACHINE_INFO },
  5492.      { DEFAULT_MACHINE_INFO },
  5493.      { DEFAULT_MACHINE_INFO },
  5494.      { DEFAULT_MACHINE_INFO },
  5495.      { DEFAULT_MACHINE_INFO },
  5496.      { DEFAULT_MACHINE_INFO },
  5497.      { DEFAULT_MACHINE_INFO },
  5498.      { DEFAULT_MACHINE_INFO },
  5499.      { DEFAULT_MACHINE_INFO },
  5500.      { DEFAULT_MACHINE_INFO },
  5501.      { DEFAULT_MACHINE_INFO },
  5502.      { DEFAULT_MACHINE_INFO },
  5503.      { DEFAULT_MACHINE_INFO },
  5504.      { DEFAULT_MACHINE_INFO },
  5505.      { DEFAULT_MACHINE_INFO },
  5506.      { DEFAULT_MACHINE_INFO },
  5507.      { DEFAULT_MACHINE_INFO },
  5508.      { DEFAULT_MACHINE_INFO },
  5509.      { DEFAULT_MACHINE_INFO },
  5510.      { DEFAULT_MACHINE_INFO },
  5511.      { DEFAULT_MACHINE_INFO },
  5512.      { DEFAULT_MACHINE_INFO },
  5513.      { DEFAULT_MACHINE_INFO },
  5514.      { DEFAULT_MACHINE_INFO },
  5515.      { DEFAULT_MACHINE_INFO },
  5516.      { DEFAULT_MACHINE_INFO },
  5517.      { DEFAULT_MACHINE_INFO },
  5518.      { DEFAULT_MACHINE_INFO },
  5519.      { DEFAULT_MACHINE_INFO },
  5520.      { DEFAULT_MACHINE_INFO },
  5521.      { DEFAULT_MACHINE_INFO },
  5522.      { DEFAULT_MACHINE_INFO },
  5523.      { DEFAULT_MACHINE_INFO },
  5524.      { DEFAULT_MACHINE_INFO },
  5525.      { DEFAULT_MACHINE_INFO },
  5526.      { DEFAULT_MACHINE_INFO },
  5527.      { DEFAULT_MACHINE_INFO },
  5528.      { DEFAULT_MACHINE_INFO },
  5529.      { DEFAULT_MACHINE_INFO },
  5530.      { DEFAULT_MACHINE_INFO },
  5531.      { DEFAULT_MACHINE_INFO },
  5532.      { DEFAULT_MACHINE_INFO },
  5533.      { DEFAULT_MACHINE_INFO },
  5534.      { DEFAULT_MACHINE_INFO },
  5535.      { DEFAULT_MACHINE_INFO },
  5536.      { DEFAULT_MACHINE_INFO },
  5537.      { DEFAULT_MACHINE_INFO },
  5538.      { DEFAULT_MACHINE_INFO },
  5539.      { DEFAULT_MACHINE_INFO },
  5540.      { DEFAULT_MACHINE_INFO },
  5541.      { DEFAULT_MACHINE_INFO },
  5542.      { DEFAULT_MACHINE_INFO },
  5543.      { DEFAULT_MACHINE_INFO },
  5544.      { DEFAULT_MACHINE_INFO },
  5545.      { DEFAULT_MACHINE_INFO },
  5546.      { DEFAULT_MACHINE_INFO },
  5547.      { DEFAULT_MACHINE_INFO },
  5548.      { DEFAULT_MACHINE_INFO },
  5549.      { DEFAULT_MACHINE_INFO },
  5550.      { DEFAULT_MACHINE_INFO },
  5551.      { DEFAULT_MACHINE_INFO },
  5552.      { DEFAULT_MACHINE_INFO },
  5553.      { DEFAULT_MACHINE_INFO },
  5554.      { DEFAULT_MACHINE_INFO },
  5555.      { DEFAULT_MACHINE_INFO },
  5556.      { DEFAULT_MACHINE_INFO },
  5557.      { DEFAULT_MACHINE_INFO },
  5558.      { DEFAULT_MACHINE_INFO },
  5559.      { DEFAULT_MACHINE_INFO },
  5560.      { DEFAULT_MACHINE_INFO },
  5561.      { DEFAULT_MACHINE_INFO },
  5562.      { DEFAULT_MACHINE_INFO },
  5563.      { DEFAULT_MACHINE_INFO },
  5564.      { DEFAULT_MACHINE_INFO },
  5565.      { DEFAULT_MACHINE_INFO },
  5566.      { DEFAULT_MACHINE_INFO },
  5567.      { DEFAULT_MACHINE_INFO },
  5568.      { DEFAULT_MACHINE_INFO },
  5569.      { DEFAULT_MACHINE_INFO },
  5570.      { DEFAULT_MACHINE_INFO },
  5571.      { DEFAULT_MACHINE_INFO },
  5572.      { DEFAULT_MACHINE_INFO },
  5573.      { DEFAULT_MACHINE_INFO },
  5574.      { DEFAULT_MACHINE_INFO },
  5575.      { DEFAULT_MACHINE_INFO },
  5576.      { DEFAULT_MACHINE_INFO },
  5577.      { DEFAULT_MACHINE_INFO },
  5578.      { DEFAULT_MACHINE_INFO },
  5579.      { DEFAULT_MACHINE_INFO },
  5580.      { DEFAULT_MACHINE_INFO },
  5581.      { DEFAULT_MACHINE_INFO },
  5582.      { DEFAULT_MACHINE_INFO },
  5583.      { DEFAULT_MACHINE_INFO },
  5584.      { DEFAULT_MACHINE_INFO },
  5585.      { DEFAULT_MACHINE_INFO },
  5586.      { DEFAULT_MACHINE_INFO },
  5587.      { DEFAULT_MACHINE_INFO },
  5588.      { DEFAULT_MACHINE_INFO },
  5589.      { DEFAULT_MACHINE_INFO },
  5590.      { DEFAULT_MACHINE_INFO },
  5591.      { DEFAULT_MACHINE_INFO },
  5592.      { DEFAULT_MACHINE_INFO },
  5593.      { DEFAULT_MACHINE_INFO },
  5594.      { DEFAULT_MACHINE_INFO },
  5595.      { DEFAULT_MACHINE_INFO },
  5596.      { DEFAULT_MACHINE_INFO },
  5597.      { DEFAULT_MACHINE_INFO },
  5598.      { DEFAULT_MACHINE_INFO },
  5599.      { DEFAULT_MACHINE_INFO },
  5600.      { DEFAULT_MACHINE_INFO },
  5601.      { DEFAULT_MACHINE_INFO },
  5602.      { DEFAULT_MACHINE_INFO },
  5603.      { DEFAULT_MACHINE_INFO },
  5604.      { DEFAULT_MACHINE_INFO },
  5605.      { DEFAULT_MACHINE_INFO },
  5606.      { DEFAULT_MACHINE_INFO },
  5607.      { DEFAULT_MACHINE_INFO },
  5608.      { DEFAULT_MACHINE_INFO },
  5609.      { DEFAULT_MACHINE_INFO },
  5610.      { DEFAULT_MACHINE_INFO },
  5611.      { DEFAULT_MACHINE_INFO },
  5612.      { DEFAULT_MACHINE_INFO },
  5613.      { DEFAULT_MACHINE_INFO },
  5614.      { DEFAULT_MACHINE_INFO },
  5615.      { DEFAULT_MACHINE_INFO },
  5616.      { DEFAULT_MACHINE_INFO },
  5617.      { DEFAULT_MACHINE_INFO },
  5618.      { DEFAULT_MACHINE_INFO },
  5619.      { DEFAULT_MACHINE_INFO },
  5620.      { DEFAULT_MACHINE_INFO },
  5621.      { DEFAULT_MACHINE_INFO },
  5622.      { DEFAULT_MACHINE_INFO },
  5623.      { DEFAULT_MACHINE_INFO },
  5624.      { DEFAULT_MACHINE_INFO },
  5625.      { DEFAULT_MACHINE_INFO },
  5626.      { DEFAULT_MACHINE_INFO },
  5627.      { DEFAULT_MACHINE_INFO },
  5628.      { DEFAULT_MACHINE_INFO },
  5629.      { DEFAULT_MACHINE_INFO },
  5630.      { DEFAULT_MACHINE_INFO },
  5631.      { DEFAULT_MACHINE_INFO },
  5632.      { DEFAULT_MACHINE_INFO },
  5633.      { DEFAULT_MACHINE_INFO },
  5634.      { DEFAULT_MACHINE_INFO },
  5635.      { DEFAULT_MACHINE_INFO },
  5636.      { DEFAULT_MACHINE_INFO },
  5637.      { DEFAULT_MACHINE_INFO },
  5638.      { DEFAULT_MACHINE_INFO },
  5639.      { DEFAULT_MACHINE_INFO },
  5640.      { DEFAULT_MACHINE_INFO },
  5641.      { DEFAULT_MACHINE_INFO },
  5642.      { DEFAULT_MACHINE_INFO },
  5643.      { DEFAULT_MACHINE_INFO },
  5644.      { DEFAULT_MACHINE_INFO },
  5645.      { DEFAULT_MACHINE_INFO },
  5646.      { DEFAULT_MACHINE_INFO },
  5647.      { DEFAULT_MACHINE_INFO },
  5648.      { DEFAULT_MACHINE_INFO },
  5649.      { DEFAULT_MACHINE_INFO },
  5650.      { DEFAULT_MACHINE_INFO },
  5651.      { DEFAULT_MACHINE_INFO },
  5652.      { DEFAULT_MACHINE_INFO },
  5653.      { DEFAULT_MACHINE_INFO },
  5654.      { DEFAULT_MACHINE_INFO },
  5655.      { DEFAULT_MACHINE_INFO },
  5656.      { DEFAULT_MACHINE_INFO },
  5657.      { DEFAULT_MACHINE_INFO },
  5658.      { DEFAULT_MACHINE_INFO },
  5659.      { DEFAULT_MACHINE_INFO },
  5660.      { DEFAULT_MACHINE_INFO },
  5661.      { DEFAULT_MACHINE_INFO },
  5662.      { DEFAULT_MACHINE_INFO },
  5663.      { DEFAULT_MACHINE_INFO },
  5664.      { DEFAULT_MACHINE_INFO },
  5665.      { DEFAULT_MACHINE_INFO },
  5666.      { DEFAULT_MACHINE_INFO },
  5667.      { DEFAULT_MACHINE_INFO },
  5668.      { DEFAULT_MACHINE_INFO },
  5669.      { DEFAULT_MACHINE_INFO },
  5670.      { DEFAULT_MACHINE_INFO },
  5671.      { DEFAULT_MACHINE_INFO },
  5672.      { DEFAULT_MACHINE_INFO },
  5673.      { DEFAULT_MACHINE_INFO },
  5674.      { DEFAULT_MACHINE_INFO },
  5675.      { DEFAULT_MACHINE_INFO },
  5676.      { DEFAULT_MACHINE_INFO },
  5677.      { DEFAULT_MACHINE_INFO },
  5678.      { DEFAULT_MACHINE_INFO },
  5679.      { DEFAULT_MACHINE_INFO },
  5680.      { DEFAULT_MACHINE_INFO },
  5681.      { DEFAULT_MACHINE_INFO },
  5682.      { DEFAULT_MACHINE_INFO },
  5683.      { DEFAULT_MACHINE_INFO },
  5684.      { DEFAULT_MACHINE_INFO },
  5685.      { DEFAULT_MACHINE_INFO },
  5686.      { DEFAULT_MACHINE_INFO },
  5687.      { DEFAULT_MACHINE_INFO },
  5688.      { DEFAULT_MACHINE_INFO },
  5689.      { DEFAULT_MACHINE_INFO },
  5690.      { DEFAULT_MACHINE_INFO },
  5691.      { DEFAULT_MACHINE_INFO },
  5692.      { DEFAULT_MACHINE_INFO },
  5693.      { DEFAULT_MACHINE_INFO },
  5694.      { DEFAULT_MACHINE_INFO },
  5695.      { DEFAULT_MACHINE_INFO },
  5696.      { DEFAULT_MACHINE_INFO },
  5697.      { DEFAULT_MACHINE_INFO },
  5698.      { DEFAULT_MACHINE_INFO },
  5699.      { DEFAULT_MACHINE_INFO },
  5700.      { DEFAULT_MACHINE_INFO },
  5701.      { DEFAULT_MACHINE_INFO },
  5702.      { DEFAULT_MACHINE_INFO },
  5703.      { DEFAULT_MACHINE_INFO },
  5704.      { DEFAULT_MACHINE_INFO },
  5705.      { DEFAULT_MACHINE_INFO },
  5706.      { DEFAULT_MACHINE_INFO },
  5707.      { DEFAULT_MACHINE_INFO },
  5708.      { DEFAULT_MACHINE_INFO },
  5709.      { DEFAULT_MACHINE_INFO },
  5710.      { DEFAULT_MACHINE_INFO },
  5711.      { DEFAULT_MACHINE_INFO },
  5712.      { DEFAULT_MACHINE_INFO },
  5713.      { DEFAULT_MACHINE_INFO },
  5714.      { DEFAULT_MACHINE_INFO },
  5715.      { DEFAULT_MACHINE_INFO },
  5716.      { DEFAULT_MACHINE_INFO },
  5717.      { DEFAULT_MACHINE_INFO },
  5718.      { DEFAULT_MACHINE_INFO },
  5719.      { DEFAULT_MACHINE_INFO },
  5720.      { DEFAULT_MACHINE_INFO },
  5721.      { DEFAULT_MACHINE_INFO },
  5722.      { DEFAULT_MACHINE_INFO },
  5723.      { DEFAULT_MACHINE_INFO },
  5724.      { DEFAULT_MACHINE_INFO },
  5725.      { DEFAULT_MACHINE_INFO },
  5726.      { DEFAULT_MACHINE_INFO },
  5727.      { DEFAULT_MACHINE_INFO },
  5728.      { DEFAULT_MACHINE_INFO },
  5729.      { DEFAULT_MACHINE_INFO },
  5730.      { DEFAULT_MACHINE_INFO },
  5731.      { DEFAULT_MACHINE_INFO },
  5732.      { DEFAULT_MACHINE_INFO },
  5733.      { DEFAULT_MACHINE_INFO },
  5734.      { DEFAULT_MACHINE_INFO },
  5735.      { DEFAULT_MACHINE_INFO },
  5736.      { DEFAULT_MACHINE_INFO },
  5737.      { DEFAULT_MACHINE_INFO },
  5738.      { DEFAULT_MACHINE_INFO },
  5739.      { DEFAULT_MACHINE_INFO },
  5740.      { DEFAULT_MACHINE_INFO },
  5741.      { DEFAULT_MACHINE_INFO },
  5742.      { DEFAULT_MACHINE_INFO },
  5743.      { DEFAULT_MACHINE_INFO },
  5744.      { DEFAULT_MACHINE_INFO },
  5745.      { DEFAULT_MACHINE_INFO },
  5746.      { DEFAULT_MACHINE_INFO },
  5747.      { DEFAULT_MACHINE_INFO },
  5748.      { DEFAULT_MACHINE_INFO },
  5749.      { DEFAULT_MACHINE_INFO },
  5750.      { DEFAULT_MACHINE_INFO },
  5751.      { DEFAULT_MACHINE_INFO },
  5752.      { DEFAULT_MACHINE_INFO },
  5753.      { DEFAULT_MACHINE_INFO },
  5754.      { DEFAULT_MACHINE_INFO },
  5755.      { DEFAULT_MACHINE_INFO },
  5756.      { DEFAULT_MACHINE_INFO },
  5757.      { DEFAULT_MACHINE_INFO },
  5758.      { DEFAULT_MACHINE_INFO },
  5759.      { DEFAULT_MACHINE_INFO },
  5760.      { DEFAULT_MACHINE_INFO },
  5761.      { DEFAULT_MACHINE_INFO },
  5762.      { DEFAULT_MACHINE_INFO },
  5763.      { DEFAULT_MACHINE_INFO },
  5764.      { DEFAULT_MACHINE_INFO },
  5765.      { DEFAULT_MACHINE_INFO },
  5766.      { DEFAULT_MACHINE_INFO },
  5767.      { DEFAULT_MACHINE_INFO },
  5768.      { DEFAULT_MACHINE_INFO },
  5769.      { DEFAULT_MACHINE_INFO },
  5770.      { DEFAULT_MACHINE_INFO },
  5771.      { DEFAULT_MACHINE_INFO },
  5772.      { DEFAULT_MACHINE_INFO },
  5773.      { DEFAULT_MACHINE_INFO },
  5774.      { DEFAULT_MACHINE_INFO },
  5775.      { DEFAULT_MACHINE_INFO },
  5776.      { DEFAULT_MACHINE_INFO },
  5777.      { DEFAULT_MACHINE_INFO },
  5778.      { DEFAULT_MACHINE_INFO },
  5779.      { DEFAULT_MACHINE_INFO },
  5780.      { DEFAULT_MACHINE_INFO },
  5781.      { DEFAULT_MACHINE_INFO },
  5782.      { DEFAULT_MACHINE_INFO },
  5783.      { DEFAULT_MACHINE_INFO },
  5784.      { DEFAULT_MACHINE_INFO },
  5785.      { DEFAULT_MACHINE_INFO },
  5786.      { DEFAULT_MACHINE_INFO },
  5787.      { DEFAULT_MACHINE_INFO },
  5788.      { DEFAULT_MACHINE_INFO },
  5789.      { DEFAULT_MACHINE_INFO },
  5790.      { DEFAULT_MACHINE_INFO },
  5791.      { DEFAULT_MACHINE_INFO },
  5792.      { DEFAULT_MACHINE_INFO },
  5793.      { DEFAULT_MACHINE_INFO },
  5794.      { DEFAULT_MACHINE_INFO },
  5795.      { DEFAULT_MACHINE_INFO },
  5796.      { DEFAULT_MACHINE_INFO },
  5797.      { DEFAULT_MACHINE_INFO },
  5798.      { DEFAULT_MACHINE_INFO },
  5799.      { DEFAULT_MACHINE_INFO },
  5800.      { DEFAULT_MACHINE_INFO },
  5801.      { DEFAULT_MACHINE_INFO },
  5802.      { DEFAULT_MACHINE_INFO },
  5803.      { DEFAULT_MACHINE_INFO },
  5804.      { DEFAULT_MACHINE_INFO },
  5805.      { DEFAULT_MACHINE_INFO },
  5806.   };
  5807.  
  5808. const char insn_n_alternatives[] =
  5809.   {
  5810.     1,
  5811.     1,
  5812.     1,
  5813.     1,
  5814.     1,
  5815.      0,
  5816.     1,
  5817.     1,
  5818.      0,
  5819.     1,
  5820.     1,
  5821.      0,
  5822.     1,
  5823.     1,
  5824.     3,
  5825.     4,
  5826.     4,
  5827.      0,
  5828.     2,
  5829.     1,
  5830.      0,
  5831.     2,
  5832.     1,
  5833.      0,
  5834.     2,
  5835.     1,
  5836.     1,
  5837.     1,
  5838.     1,
  5839.     1,
  5840.     1,
  5841.     2,
  5842.     1,
  5843.     1,
  5844.     1,
  5845.     1,
  5846.     1,
  5847.     1,
  5848.     1,
  5849.     1,
  5850.     3,
  5851.     1,
  5852.     1,
  5853.     3,
  5854.     1,
  5855.     5,
  5856.     1,
  5857.     2,
  5858.     2,
  5859.     2,
  5860.      0,
  5861.      0,
  5862.      0,
  5863.     1,
  5864.     1,
  5865.     1,
  5866.     2,
  5867.     1,
  5868.     1,
  5869.      0,
  5870.     2,
  5871.     1,
  5872.      0,
  5873.     2,
  5874.     1,
  5875.      0,
  5876.     2,
  5877.     1,
  5878.      0,
  5879.     1,
  5880.     1,
  5881.      0,
  5882.     1,
  5883.     1,
  5884.      0,
  5885.     1,
  5886.     1,
  5887.      0,
  5888.     1,
  5889.     1,
  5890.      0,
  5891.     1,
  5892.     1,
  5893.      0,
  5894.     1,
  5895.     1,
  5896.     1,
  5897.     1,
  5898.     1,
  5899.     1,
  5900.     1,
  5901.     1,
  5902.      0,
  5903.     1,
  5904.     1,
  5905.      0,
  5906.     1,
  5907.     1,
  5908.      0,
  5909.     1,
  5910.     1,
  5911.     1,
  5912.     1,
  5913.     1,
  5914.     1,
  5915.     1,
  5916.     1,
  5917.     1,
  5918.     1,
  5919.      0,
  5920.     1,
  5921.     1,
  5922.      0,
  5923.     1,
  5924.     1,
  5925.     4,
  5926.     1,
  5927.     2,
  5928.     2,
  5929.     2,
  5930.     2,
  5931.      0,
  5932.     1,
  5933.     1,
  5934.      0,
  5935.     1,
  5936.     1,
  5937.      0,
  5938.     1,
  5939.     1,
  5940.     4,
  5941.     1,
  5942.     2,
  5943.     2,
  5944.     2,
  5945.     2,
  5946.      0,
  5947.     1,
  5948.     1,
  5949.      0,
  5950.     1,
  5951.     1,
  5952.      0,
  5953.     1,
  5954.     1,
  5955.     1,
  5956.     1,
  5957.      0,
  5958.     1,
  5959.     1,
  5960.     1,
  5961.     1,
  5962.      0,
  5963.     1,
  5964.     1,
  5965.      0,
  5966.     1,
  5967.     1,
  5968.      0,
  5969.     1,
  5970.     1,
  5971.      0,
  5972.     1,
  5973.     1,
  5974.     1,
  5975.     1,
  5976.      0,
  5977.     1,
  5978.     1,
  5979.     1,
  5980.     1,
  5981.      0,
  5982.     1,
  5983.     1,
  5984.      0,
  5985.     1,
  5986.     1,
  5987.      0,
  5988.     1,
  5989.     1,
  5990.      0,
  5991.     1,
  5992.     1,
  5993.     1,
  5994.     1,
  5995.     1,
  5996.     1,
  5997.     1,
  5998.     1,
  5999.     2,
  6000.     2,
  6001.     2,
  6002.     1,
  6003.     1,
  6004.     2,
  6005.     2,
  6006.     2,
  6007.     2,
  6008.     1,
  6009.     1,
  6010.     1,
  6011.     1,
  6012.     1,
  6013.      0,
  6014.     1,
  6015.     1,
  6016.      0,
  6017.     1,
  6018.     1,
  6019.      0,
  6020.     1,
  6021.     1,
  6022.     1,
  6023.     1,
  6024.     1,
  6025.     1,
  6026.     1,
  6027.     1,
  6028.     1,
  6029.     1,
  6030.     1,
  6031.     1,
  6032.     1,
  6033.     1,
  6034.     1,
  6035.      0,
  6036.     1,
  6037.     1,
  6038.      0,
  6039.     1,
  6040.     1,
  6041.      0,
  6042.     1,
  6043.     1,
  6044.     1,
  6045.     1,
  6046.     1,
  6047.     1,
  6048.     1,
  6049.     1,
  6050.     1,
  6051.     1,
  6052.     1,
  6053.     1,
  6054.     1,
  6055.     1,
  6056.     1,
  6057.     1,
  6058.     1,
  6059.     1,
  6060.     1,
  6061.     1,
  6062.     1,
  6063.     1,
  6064.     1,
  6065.     1,
  6066.     1,
  6067.     1,
  6068.     1,
  6069.     1,
  6070.     1,
  6071.     1,
  6072.     1,
  6073.     1,
  6074.     2,
  6075.     2,
  6076.     2,
  6077.     2,
  6078.     2,
  6079.     2,
  6080.     1,
  6081.     1,
  6082.     1,
  6083.     1,
  6084.     1,
  6085.     1,
  6086.     1,
  6087.     1,
  6088.     1,
  6089.     1,
  6090.     1,
  6091.     1,
  6092.     1,
  6093.     1,
  6094.     1,
  6095.     1,
  6096.     1,
  6097.     1,
  6098.     1,
  6099.     1,
  6100.     1,
  6101.      0,
  6102.      0,
  6103.      0,
  6104.      0,
  6105.      0,
  6106.      0,
  6107.      0,
  6108.      0,
  6109.      0,
  6110.      0,
  6111.      0,
  6112.      0,
  6113.      0,
  6114.      0,
  6115.      0,
  6116.      0,
  6117.      0,
  6118.      0,
  6119.      0,
  6120.      0,
  6121.      0,
  6122.      0,
  6123.      0,
  6124.     1,
  6125.      0,
  6126.     1,
  6127.     1,
  6128.     1,
  6129.     1,
  6130.     1,
  6131.      0,
  6132.      0,
  6133.     1,
  6134.     1,
  6135.   };
  6136.